Added in some features!

Hey,

I saw those "Gotchas" you listed, which motivated me to see if I could fix them. I also thought it'd be nice to add in Grunt to manage the build process. So, long story short:

* `npm install` -> fetches grunt, grunt-contrib-concat, and grunt-contrib-uglify
* created `/dist` and `/src` folders and moved the script to `/src/$.js`
* `grunt build` -> uglifies src/$.js to dist/$.js, dist/$.min.js, and $.js.map for source mapping
* created a `component.json` if you want to `bower register min.js git://github.com/remy/min.js.git`
* added chaining to triggers

I also added an internal empty element (not inserted on the document). When no results are returned from `$('a query')`, this empty div is returned, which will allow `.on` and `.trigger` to be used, as any other element. Also, this fake element is used if a user wants to say, simply `$.trigger` and `$.on`, without using `$` as a function.

I think that's about it, lemme know what you think.