Update to V2

V1 can still be used from the V1 branch.

This is a breaking update as the options have changed a fair amount.

Neater code so it'll be easier to improve, Makefile so it can be easily minified and more.