refactor remote file ftp specs to use let blocks
replace mock resources with real ones

resources are value objects with no side-effects, so favor testing the
real interfaces instead of mocking/stubbing.
use method delegation to expose testable behavior

refactor to use small methods with minimum of logic instead of a bunch
of unrelated code in a giant initialize method
remove obsolete conditional fetch code

Removes conditional fetch logic based on the old (and already removed)
design where the remote file provider set conditional fetch data
directly on the remote file resources. For now this is replaced with
stub code that results in the file being fetched unconditionally.
remove conditional get from FTP

Conditional get is still a desirable feature to have, it's being removed
because of time constraints. It can be added back in reusing the same
implementation code as the HTTP backend