BREAKING: Use abstract-chunk-store for storage
BREAKING: Use abstract-chunk-store for storage

Part of an effort to share more code with `torrent-stream` by
@mafintosh:

https://github.com/mafintosh/torrent-stream/pull/133
https://github.com/mafintosh/torrent-stream/pull/132

Storage is now based on:

https://www.npmjs.com/package/fs-chunk-store (in node)
https://www.npmjs.com/package/memory-chunk-store (in the browser)

and:

https://www.npmjs.com/package/immediate-chunk-store
https://www.npmjs.com/package/torrent-piece

This is a BREAKING change, since users who pass in custom storage
engine with `opts.storage` will need to update their storage backend to
be `abstract-chunk-store` compliant:

https://www.npmjs.com/package/abstract-chunk-store

There are also likely other miscellaneous BREAKING API changes, since
this was a huge refactor of the codebase.

feross/webtorrent-cli,feross/webtorrent-cli