Iterate functionality

Abstract

Hi, this is `iterate` functionality for localForage, it allows iterating over all keys in backing database, very useful feature when you are dealing with huge amount of records. Without this functionality in order to accomplish `iteration` previously it was required to store special `keys` object in `localForage` that contained all the keys used in database, which obviously is not reasonable when you are dealing with huge amount of records.

This functionality doesn't yet contain new unit tests, but neither it fails existing ones which were fixed during development, in order to provide new ones I would need several instructions on:

1) How do you guys debug your tests on your project, I've ended up with using `node-inspector` for debugging `grunt` task, it's a pain, maybe there's simpler way?
2) Please point out  the areas of testing that are from your perspective sufficient for including current functionality into the main branch.

P.S.
This is actually second try (https://github.com/mozilla/localForage/pull/185) for adding iterate functionality made by me some time ago, I've tried to resolve all issues pointed out, except using existing `getItem` method within `iterate` since it looks like an overkill from performance perspective, `getItem` will create a promise per each iterated item, it's really looks like weird requirement.