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.

This is just a helper, defined __only__ in the counter example, which I augmented a bit, so you can now test *most* "functions" via the url

i.e.
* accessing http://127.0.0.1:8080/values?true would return the result of `storage.values(true)`
* accessing http://127.0.0.1:8080/length?true would return the result of `storage.length(true)`
* accessing http://127.0.0.1:8080/keys would return the result of `storage.keys()`

You get the gist, I can get rid of it, that was a quick hacky way to test those functions