Migrate to Browserify / Gulp for Build Process

#### Scope
This PR changes quite a few things and so I want to start the discussion on this early in the process. Essentially I am proposing a move to using pure CommonJS for `localForage` source and then building it for release using browserify and a re-tooled build process using gulp. So far, this is now passing all tests (including tests for requirejs and component). In addition, I can verify installation via NPM and subsequent "browserification" in user-land is working as expected. This approach also cuts about 15 `KB` off the unminified build size (minified is holding steady at 19 `KB`).

#### Browserify Testing
Browserify fixes can be verified via:
```bash
npm install thisandagain/localForage#browserify
```

#### Impacts
Resolves GH-198 
Resolves GH-174
Closes GH-157

#### Yay!
![](http://media.giphy.com/media/oBdhYGbTTYglW/giphy.gif)
http://jslinterrors.com/redefinition-of-a

All three of the drivers have lines similar to:
```js
var localStorage = null;
localStorage = window.localStorage;
```

This will cause the `Redefinition of '{a}'` error to be thrown by jshint as it treats objects which are known to be bound to `window` the same as if they were bound to `global`.