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
remote: oneline remote name nil check
remote: add remote.save
fixture: add another remote with pushurl to the fixture
remote: add remote.push_url
remote: add remote.push_url=
remote: use rugged_check_repo in remote.each
remote: allow block to be passed to update_tips!
remote: add remote.rename!
remote: add getting of fetch/push refspecs
remote: add_fetch/add_push refspecs
remote: add clear_refspecs
remote: add .names, .each yields Remote

Rugged::Remote.each now yields Rugged::Remote instead of String remote
name.
Rugged::Remote.names returns an array of remote names
remote: fixup rdoc formatting
remote: nil on zero local oid in rhead from ls
remote: code style fixup