cleaning up stuff while searching for the cause of #62.
provide explicit init method for block devices.
allow block size and mtu to be set from outsite of the blockdevice.
fixed a bug where the ceil method would not always round up properly.
add tests to ensure read works in any situation.
fixed result offset bug.

hooray for testing!
use mockito annotations.
use generic interface for easier testing.
always read full blocks and ignore the rest if less.

cleaned up tests.
fix last partial block being chopped of.

fixes #62.

also: track read progress as blocks instead of bytes.
bump version to 1.5.1 for hotfix.
Merge branch 'hotfix/1.5.1'