When you will start Elementary OS, before you will login, I mean before you will type login / username and password, press combination of ctrl+alt+F1 to F6, usually I press F4. It will show you the terminal. Login there, I mean type your login and password, then type this in terminal:
sudo mv /etc/xdg/autostart/at-spi-dbus-bus.desktop /etc/xdg/autostart/at-...
Ok, so I get to answer my own question. This is not an elementary OS issue, but rather a general Linux thing. Apparently, X likes to break inputs on upgrade.
To fix this, I just rebooted into recovery mode, enabled networking and dropped into root and ran apt-get install xserver-xorg-input-all
Just like that, I'm back in business.
Remove bluetooth indicator (in terminal):
apt remove wingpanel-indicator-bluetooth switchboard-plug-bluetooth
If you never use bluetooth, you can remove bluetooth related packages completely:
apt remove bluetooth
install Elementary SDK (this fix may work if you run into errors in 5.1 hera):
sudo apt install elementary-sdk
install a compiler:
sudo apt-get install cmake
assuming you have git already set up, clone the repository you want to work on (eg. wingpanel-datetime-panel):
git clone https://github.com/elementary/wingpanel-indicator-datetime.git
change into ...
It's possible. Open the terminal and copy/paste;
Add the following;
Logout and login.