Support for other storage backends for larger data storage

Opening this ticket as a continuation of #23.

@nilbus wrote:
> How do you feel about Backbone.dualStorage using Lawnchair instead of directly using localStorage? Lawnchair will persist using localStorage, but if other adapters are available and localStorage isn't supported by the currently executing javascript runtime, lawnchair will attempt each successive adapter until it finds one that works.
> Why? It allows the caching layer to work when localStorage is not supported, and it supports indexed-db and websql, which allow storing data > 2.5MB, which localStorage does not (in most browsers). I'm in the latter camp, where 2.5MB just isn't cutting it.

@maxfl wrote:
> Yes, I'll work on implementing it. :-)
> Re changing to an asynchronous API wouldn't it be better to use callbacks and let people manage them with async.js and the like? I thought > promises/deferreds are becoming less popular these days?
> We might be able to use some code from Backbone.websqloffline for the WebSQL store? Otherwise something like Lawnchair or Sticky gives us options for > different storage backends. What do you think?
> Also, do the current tests provide full coverage?
> PS. I don't use coffeescript...