Support for new status formatter: tabular.
Migrated formatter to its own file. Refactoring.
Merge branch 'master' into status-formatter-tabular

- Migrated FormatTabular to status_formatters.go.
- Migrated return error to github.com/juju/errors
- Removed debugging/panic in an impossible situation.
- Migrated towards use of stack-local byte-buffer rather than a heap-based pointer dereference.

Conflicts:
	cmd/juju/status.go
	cmd/juju/status_test.go
Made indentation level a constant for clarity.
Prepend EnvUUID to _id of each services doc.

Add an upgrade step, respective tests and a helper function to change
the _id field of each service doc from "id" to "envUUID:id".
Add tools-stream config to allow tools from different streams to be used
Fix the panic when no running environment.
Add apt_preferences file with bootcmd

The apt_preferences file must be written
before we run "apt-get upgrade", or the
pinning does not take effect on non-bootstrap
machines.

Fixes https://bugs.launchpad.net/juju-core/+bug/1370781
Tweak a test that assumed sort order.
Fix yucky code
Add deprecation warning
Factory methods using tags for user parameters.
Limit adding and sending metrics to the collect-metrics hook.
Merge pull request #805 from wallyworld/tools-stream

Add tools-stream config to allow tools from different streams to be used
Add tools datasource registration framework
Remove provider storage from tools search path

Also, register OpenStack keystone search path for tools.
Revert name change
Fix azure, local, maas provider
Fix ec2 tests
Fix dummy, joyent provider tests