Remove hardcoded paths

* added helper functions to return variables for system we are running on
* removed hardcoded paths and socket type
networker sceleton
Convert all api.State.Call() sites to pass in a Version=0 argument.
FacadeVersions starts to track what versions of the various API facades that we know about.
Implement api.State.BestFacadeVersion.

Use the cached 'best' version for all of the API Facades that we know about, and match
that against the versions that Login returns for us.
start working on changing all the call sites to actually select the best API version.

However, there is definitely a repeating pattern which I'd like to clean up, so I'll side track to that
before finishing this work.
Start working on a base.FacadeCaller which lots of things end up using.

I'm not settled on it. I *like* that they all end up with a simple .APICall to call,
and I like that they all end up easily exporting a BestVersion function that they can use.
I don't like that they export APICall and RawCaller.
I'm also not sure that FacadeCaller should be an interface rather than just being the
concrete type that everything embeds.
Merge branch 'master' into 120-networker
consider BestAPIVersioner instead of exposing all of FacadeCaller.
rename networkerworker to networker
setup network interfaces
ifup logic was added
Merge branch 'api-versioning-4-login-describes' into api-versioning-5-state-call-takes-version

Resolve Conflicts:
	state/api/client.go
	state/api/watcher/watcher_test.go

This brings in a newer trunk, and we resolve conflicts against it.
Fixes the issue in LP #1331744 comment #2
Updated fix
more fixing
added apiserver and api client implemenation of change password.

Added the change-password user command
feedback from review

added more tests to the change-password command
Merge remote-tracking branch 'upstream/master' into 120-networker
Added --generate and --password flags.

Try to revert the password if the environinfo write fails