[WIP] Major project revision 1

## Motivation:
The two `master` branches have diverged considerably, with changes spanning over 3 branches and over 70 commits. Many of the changes introduced the last week were actually redesigns and, being interdependent, it was quite difficult to align them neatly with the topics of the previous PRs. Some of the commits turned out to conflict each other, and special care was needed to ensure that merging produced the desired results. There were even cases where the auto-merge would succeed but the resulting code would be broken. I ended up manually inspecting almost ever file. Luckily, now the 3 branches are merged, the changes make much sense when viewed as a whole.

## Purpose:
The purpose of this PR is to be a comprehensive report of the last week's progress, so that we can do one full review and move on.

(details coming up soon)