replace assertPath with assertThat

- allows to reuse already defined assertions
- requires to avoid static import in assertion code
- makes code slightly more readable
defer casting to when needed
make fs within file officially not supported
entry key is its reference

what is more unique than a reference ?
note that equals() is not overriden in Entry, we might return something else
if we decide do override it.
test file data truncate corner cases
not than much left to test
test toRealPath
test attributes file key
copy from default fs with sha1 checksum

Note that we have to manually "translate" paths from default fs
to memory fs while copying, and we have to use path elements to avoid
conversions between path separators.
move file visitors to separate classes