Move the file based conflict code out of JEStagingDatabase to FileConflictStorage helper class and use it from FileStagingDatabase
Make RemoteRepositoryTestCase use persistent storage for the local and remote repositories.

This avoids having to mock some stuff when calling clone(), fetch(), and pull() in RemoteRepositoryTestCase
due to the storage being volatile in the default testing guice modules
Avoid changing the state of the command arguments in FetchOp
Remote implemented equals but didn't implement hashCode()
legibility improvements for Fetch/PullResult
make sure FetchOp closes the remote repository
make LocalRemoteRepo use the origin and target ObjectDatabases directly for fetch: