Easier build process using CMake

Hi Siva,

I've implemented a simpler build process using CMake that also builds the solver as a static library that can easily be compiled into user code. I think that something like this is key for usability but let me know what you think and if you want to merge it.

The biggest change that I made was to move the default `get_Matrix_Entry` and `set_Locations` functions to the example file. This means that a user can just compile in their own implementation without editing yours. New tests can be added to the end of `./CMakeLists.txt` and the syntax should be obvious.

Let me know what you think and hopefully I'll have a real demo for you soon... sorry about all the sucking on that!!