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