Makefile need love too

Lots of discussion has take place in #320 

New make build system.  This **REQURES** **gmake** to work and with this we have pushed almost all the logic about build the code into a single file src/Makefile 

* The Makefile is designed for developers other people that like playing with pointy dangerous things. 
* install.sh is designed for users and should be the supported method for install. 

I am sure it will need more work and I am creating the Pull Request to get more people to try it out and report back.  


> Except by explicit request, make exports a variable only if it is either defined in the environment initially or set on the command line, and if its name consists only of letters, numbers, and underscores. Some shells cannot cope with environment variable names consisting of characters other than letters, numbers, and underscores. 


Just making sure I am reading this correctly.  But if i am parsing this we need to export things that are define in the Makefile but not overwritten.