README, GPL3, and cleanup

* Added README.md
* Added a LICENSE
* Code cleanup, memoize some functions with underscore.