`db` must be a `levelup` instance

This way, it is easier to use this library with other environments, such
as the browser (with `level-js`). It also makes it possible to use
`memdown` in the tests.
Pass in the adapters from the outside

It does not make sense to have an opinonated set of adapters ready and
not make it possible to use other adapters.
Use needle for downloads

Using `needle` makes it possible to provide http as well as https links.
Use memdown for tests
Do not ship adapters directly with giffer
Use needle instead of the http module
Adapt to api changes
Provide a testadapter