Fix a non-deterministic test bug

Test was relying on map order.
Remove instance.(Wait)DNSName

Because we don't need them, and I'm sick of seeing them.
Merge pull request #38 from axw/remove-instance-dnsname

Because we don't need them, and I'm sick of seeing them.

Also, drive-by fix for a non-deterministic test that fails with Go 1.3 beta 2.
Cleaner agent status reporting

Machine and unit agent status is now reported under a separate "Agent"
struct. For compatibility reasons the existing agent status fields
have been left as is (but will eventually be removed). StatusData was
moved and only exists under Agent because it was recently added and
didn't make it in to any Juju release yet - there's no reason to
maintain backwards compatibility for that field.

If API versioning lands soon I will revisit this and remove field
duplication.

The main driver for this change is to allow clients to to easily
access the original status and info after the API has set the status
to StatusDown and munged the info string. These will be used by the
command line client in a later PR.
Merge pull request #51 from mjs/cleaner-agent-status

Machine and unit agent status is now reported under a separate "Agent"
struct. For compatibility reasons the existing agent status fields
have been left as is (but will eventually be removed). StatusData was
moved and only exists under Agent because it was recently added and
didn't make it in to any Juju release yet - there's no reason to
maintain backwards compatibility for that field.

If API versioning lands soon I will revisit this and remove field
duplication.

The main driver for this change is to allow clients to to easily
access the original status and info after the API has set the status
to StatusDown and munged the info string. These will be used by the
command line client in a later PR.
Integrated instance addresses and networks

Moved several items from the instance package
to the network/ package, renamed some
of them, and propagated the changes across:
 - instance.Address -> network.Address
 - instance.AddressType -> network.AddressType
 - instance.HostName -> network.HostName
 - instance.Ipv4Address -> network.IPv4Address
 - instance.Ipv6Address -> network.IPv6Address
 - instance.NetworkScope -> network.Scope
 - instance.Address.NetworkScope -> n.Address.Scope
 - instance.Network* -> network.Scope*
 - instance.NewAddress(es) -> network.NewAddress(es)
 - instance.HostPort -> network.HostPort
 - instance.Port -> network.Port
 - instance.Select*() -> network.Select*()
 - instance.SortPorts -> network.SortPorts

(I might have missed some, but you get the idea).

Also, some refactoring was done to split addresses and
ports implementation in separate files and test suites.

No other logic changes introduced - the rest is just
mechanically applying the changes above.

Moved environs/network to network/ and updated imports,
as suggested on the review.
Merge pull request #49 from dimitern/510-instance-addresses-and-networks-integration

Moved several items from the instance package
to the network/ package (used to be environs/network/),
renamed some of them, and propagated the changes across:
 - instance.Address -> network.Address
 - instance.AddressType -> network.AddressType
 - instance.HostName -> network.HostName
 - instance.Ipv4Address -> network.IPv4Address
 - instance.Ipv6Address -> network.IPv6Address
 - instance.NetworkScope -> network.Scope
 - instance.Address.NetworkScope -> n.Address.Scope
 - instance.Network* -> network.Scope*
 - instance.NewAddress(es) -> network.NewAddress(es)
 - instance.HostPort -> network.HostPort
 - instance.Port -> network.Port
 - instance.Select*() -> network.Select*()
 - instance.SortPorts -> network.SortPorts

(I might have missed some, but you get the idea).

Also, some refactoring was done to split addresses and
ports implementation in separate files and test suites.

No other logic changes introduced - the rest is just
mechanically applying the changes above.
charm: avoid use of /bin/cp

Isolated tests should avoid use of external commands when possible.

Also update utils dependency so that we can use the new fs package
containing the Copy function.
provider/openstack: support zone placement
charm/testing: do not rely on copy overwriting
Merge pull request #37 from axw/provider-openstack-zone-placement

This is essentially the same as the work done for ec2 in https://github.com/juju/juju/pull/8. Like many other things in the two providers, there is a lot of overlap.

I have not yet updated dependencies.tsv; will do so when the goose branch lands (https://codereview.appspot.com/103900045).

A followup will add support for automatic spread across AZs.
Merge pull request #57 from rogpeppe/006-charm-no-cp

Isolated tests should avoid use of external commands when possible.

Also update utils dependency so that we can use the new fs package
containing the Copy function.
store: do not use environs/config

Also make charm.DirSuite use IsolationSuite.
Use the external MgoSuite.

Mostly mechanical.
Remove the testing/mgo* bits which are now in github.com/juju/testing.
Add testing.Certs to be used when registering the MgoSuite tests.
Merge pull request #59 from rogpeppe/007-charm-no-envconfig

store: do not use environs/config

Also make charm.DirSuite use IsolationSuite.
Implemented ListNetworks in dummy provider and stubbed it out in the others
store: use IsolationSuite in ConfigSuite
Merge pull request #58 from dimitern/511-environ-listnetworks-stubs

Introducing Environ.ListNetworks()

Provides a way for juju to discover what networks
are available from the provider. Later, we'll use
that information to discover networks initially
(at bootstrap) and to update them when they change.

Implemented in dummy provider only and stubbed it
out in the others

In a follow-up a concept of "pending networks" will
be introduced in state to hold such networks until
the user decides to use them (i.e. by running
juju add-network --existing).
Add testing package tests, rename getCerts.
Merge pull request #62 from rogpeppe/008-store-configsuite-isolationsuite

store: use IsolationSuite in ConfigSuite

This removes a dependency on github.com/juju/juju/testing.