Remove hardcoded paths

* added helper functions to return variables for system we are running on
* removed hardcoded paths and socket type
Introduce the changes to track a Request.Version field, add tests in the json codec.
Change the MethodCaller function into a FindMethod function that takes a version parameter.

This should let us end up with it behind an interface, and give us both Serve and ServeFinder.
Change rpcreflect.MethodCaller to be an interface.
And reimplement the CustomCaller as CustomMethodFinder using that new interface.
found something with go vet
test suite is happy with a new MethodFinder implemenation.
I wasn't able to get 'InterfaceMethods' to work the way we want, because
they always fundamentally get unwrapped, but that is ok since it still
works better for us.
That is the last of the RPC changes that aren't the registry itself
Finish implementing a FacadeRegistry type and exposing it.

Rather than using utils/registry.TypedNameVersion because utils has been
moved anyway, and we only had one genuine user of it.
move over all of the API facades to the new structure, still needs thorough testing.
changing the name in the file, forgot to change it in the test.
we need to register the Networker worker

This gets the api/networker tests passing, which means all tests seem to be
ready.
Initial skeleton of backup download handler
Prototype of backup download handler
Remove some charm code from the backup handler and use the correct error response code
Basic tests for backup endpoint
networker sceleton
Set SHA header for backup file
Correct year in copyright header
Create and remove the temp dir needed by backup
Skeleton test for serving backup files