Restructure the project, using grunt

This commit doesn't change the functionality of the plugin; it merely
moves everything around and adds the extra files required by grunt. A
bit of effort, but hopefully worth it.