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.

Oh, I see what you're doing here. It seems like you're running into complexity because the ttl namespace is in the same storage as the data namespace. Perhaps you could consider putting them into separate db folders?