Improved build system

Now you can build `core.a` library by calling `make core`. It's also nicer for core to have its own cmake project file rather than being put in the root's CMakeLists.txt.

Hopefully fixed errors some people saw when using cmake.

Also, now you can build all up to date tests that are supported by your platform by just running `make` and it will not cause any errors.

INSTALL missed a point that calling cmake from some build directory is a lot cleaner, since all generated by cmake files will be generated in that build directory only, making it easier to cleanup.