Added OS field to version.Binary, version.Current

This change allows us to cache the current OS we are running on, so we will not have to do a version.GetOSFromSeries(version.Current.Series) every time we need to get the operating system type
move cloudinit work to networker for MAAS
Agent config mutators can now return errors

Previously, functions that modify agent config could not return
errors, requiring some gynamastics to get errors out of these
functions. By requiring that errors are returned some areas that call
ChangeConfig are now cleaner.
Merge pull request #341 from mjs/improve-agent-change-config-error-reporting

Agent config mutators can now return errors

Previously, functions that modify agent config could not return errors, requiring some gynamastics to get errors out of these functions. By requiring that errors are returned some areas that call ChangeConfig are now cleaner.
s/IsAction/IsValidAction/
s/IsNetwork/IsValidNetwork/
s/IsMachine/IsValidMachine
s/IsService/IsValidService/
s/IsUnit/IsValidUnit/
s/IsUser/IsValidUser/
Update charm and names dependencies.
Change EnsureNotBootstrapped to use StateServerInstances

EnsureNotBootstrapped is modified to call StateServerInstances,
rather than LoadState directly. StateServerInstances is now
required to return ErrNotBootstrapped if there are no state
server instances.

The BootstrapState type and related functions have been moved
from environs/bootstrap into provider/common, which is where
it should have been before were it not for the layer violation.
Move user manager types to state/api/usermanager.

Making way for UserInfo as defined in the identity spec. Moving
usermanager RPC types to the client package to avoid conflicts.
Move usermanager types, ModifyUser to apiserver.
Add tests for local/manual provider StateServerInstances
Merge pull request #343 from howbazaar/valid-names

Update for new valid names in names package.
Clean up imports.
Merge pull request #344 from cmars/id_usermanager_refactor

usermanager types refactoring

Relocating usermanager-specific API param types. We want to introduce a UserInfo type for login API purposes which conflicts with a usermanager-specific structure with the same name but different purpose.

Relocating the type to the apiserver subpackage to keep the type out of a common ever-growing state/api/params package.
fix tests
Merge remote-tracking branch 'upstream/master' into 130-cloudinit-networker