TTL + lots of changes

* Added ttl support, [issue#24](https://github.com/simonlast/node-persist/issues/24)
* Removed [`sugar`](https://www.npmjs.org/package/sugar) and [`underscore`](https://www.npmjs.org/package/underscore) dependencies
* Added [`q`](https://www.npmjs.org/package/q) dependency
* All async* calls will return a promise and accept an optional callback
* Added extra API functions
 + `keys`
 + `getItemSync`
 + `setItemSync`
 + `removeItemSync`
 + `clearSync` 
 + `forEach`
* Deprecated functions
 + `key` (see my code comments [why](https://github.com/akhoury/node-persist/blob/master/node-persist.js#L206-L208))
* Deprecated signatures, both because they do not need to be async
 + `values(callback)` 
 + `valuesWithKeyMatch(match, callback)`

See the new README  for all the details. preliminary testing looks good, it's probably a better idea to write some unit tests.

Instead of adding `includeTTLKeys` to each of these functions, you could add a new top-level function called `filterTTLKeys` that the end-user could compose with this.