Version 2 initial commit

Contains the beginnings of the code-base for FVM v2. This version should
be better, if I finish it, and will attack with a more OOP approach than
the previous version (now available under the branch Version-1).