Removed InfoId interface{} alias

The InfoId type gave the illusion that InfoId was some specific type, however it is not. As an alias for interface{}, _anything_ can be used or converted to this type.
one more place InfoId was used
Merge pull request #854 from davecheney/203-state-multiwatcher-simplify

Remove InfoId interface{} alias

The InfoId type gave the illusion that InfoId was some specific type, however it is not. As an alias for interface{}, _anything_ can be used or converted to this type.
state/multiwatcher: break dependency on params.EntityInfo

This change breaks a dependency from `state/multiwatcher` to `apiserver/params` for the `EntityInfo` type. This is done by declaring a compatible interface in the `multiwatcher` package. As two interfaces with identical method sets are themselves identical, values which fulfil the `params.EntityInfo` interface also fulfil `multiwatcher.EntityInfo`.

Sadly `EntityInfo` defines a `EntityId` method which returns a `params.EntityId` type, which continues to wed us to `apiserver/params`. That problem is the subject of subsequent PRs
Drive-by: log when jujud terminates due to specific login errors
Merge pull request #855 from davecheney/204-state-multiwatcher-dont-depend-on-apiserver-params

state/multiwatcher: break dependency on params.EntityInfo

This change breaks a dependency from `state/multiwatcher` to `apiserver/params` for the `EntityInfo` type. This is done by declaring a compatible interface in the `multiwatcher` package. As two interfaces with identical method sets are themselves identical, values which fulfil the `params.EntityInfo` interface also fulfil `multiwatcher.EntityInfo`.

Sadly `EntityInfo` defines a `EntityId` method which returns a `params.EntityId` type, which continues to wed us to `apiserver/params`. That problem is the subject of subsequent PRs
apiserver: changed login failure handling during upgrades and restores

Login attempts may fail during upgrades or restores due to data
manipulations performed (or not performed yet) by these
operations. Instead of reporting a "bad credentials" error in this
case, which is confusing to users and causes unit agents to terminate,
return "maintenance in progress" instead.

Fixes LP #1372752.
Merge pull request #853 from mjs/1372752-api-login-fails-during-upgrade

apiserver: changed login failure handling during upgrades

Login attempts may fail during upgrades due to schema migrations not having been applied yet. Instead of reporting a "bad credentials" error in this case, which is confusing to users and causes unit agents to terminate, return "upgrade in progress" instead.

Fixes LP #1372752.

http://reviews.vapour.ws/r/119/diff/