chore: make string_view.h public
chore: misc fixes

  - allow dereferencing data() on empty string_view
  - add missing header
  - remove old 3rdparty cruft
feat(rabin): add rabin fingerprint implementation

The code comes from the Agent, which is a C++ copy of the
Java version (ASL 2.0) from https://github.com/wurp/rabin-tool .

Changes made:

  - the window size is configurable at compile time
  - reordered some data members and operations
feat(bundle): internally calculates sha1 hash

`mark_new_block` now only accepts a block size parameter.  A new
`blocks` member function exposes the internal block records.