Remove hardcoded paths

* added helper functions to return variables for system we are running on
* removed hardcoded paths and socket type
Merge branch 'master' into os-speciffic-vars

Conflicts:
	cmd/jujud/agent.go
	cmd/jujud/main.go
	cmd/jujud/run.go
	worker/uniter/jujuc/server.go
Added comments, removed extra variables
Merge branch 'master' into os-speciffic-vars
fixing up paths
Refactor osenv changes, add windows ver. detection

* refactored the way we get the paths based on series
* added functions to determine the windows version we are running on
* moved contents of github.com/juju/juju/version/ubuntu one level up (based on discussions with Nate)
removed commented import
Added powershell helpers

* this file contains a powershell and .NET blob needed for generating windows specific userdata
fixes based on feedback
missed 2 instances of windowsVersions
Converted map keys to constants
get value without index
use an enumerator for OS versions
change constants to use enumerator
Merge branch 'master' into os-speciffic-vars
moved the os specific paths to separate package
import version
Merge branch 'master' into os-speciffic-vars
merged export_test from previous "ubuntu" package
Fix bug #1333098. Concurrent access to the objectCache needs to be protected by a mutex.

While there, I discovered a difference race condition in the api Watcher code.
So I fixed that in passing.

The new test fails if you run under '-race', and the tests in cmd/jujud/*TestMachineAgentRsyslog* used
to fail with the race detector and now pass.