Refactoring and adding submodule.

* MathLibrary has been renamed to MathModule to clarify the distinction
between the library, modules, classes, and functions.
* Added a submodule for the main repo and updated the project's
references and solution projects.