remote: add docs
remote: add remote.add
remote: add tests for transport methods

This doesn't actually test the transport protocols, just that
calling the methods transporting data actually works.

File transport is used so, that the tests can be faster and work
without network connection
remote: add remote.url=
remote: extract the check for valid url