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.
Fix the panic when no running environment.
Merge pull request #759 from katco-/status-formatter-tabular

Status formatter tabular

https://docs.google.com/a/canonical.com/document/d/1olIjfnMIKPbNMmNBhfjwlnzdRvY-xBKygpIOhv7QIkE/edit
Merge pull request #806 from howbazaar/fix-status-on-non-running-env

Fix the panic when no running environment.
ActionComplete / ActionFailed called after Action completion

The worker now calls ActionComplete or ActionFailed on state, depending
on the success state of the Action and any errors.

The hook is set to an error state if the Action hook is missing, or if
other errors take place during hook execution.  If the Action hook sets
a fail state, the Hook will not error, rather the Action will fail.
ActionComplete / ActionFailed called after Action completion

ActionTags are now properly initialized on worker uniter.HookContext at the
time it is created.
ActionComplete / ActionFailed called after Action completion

Final bits and pieces to complete PR 617 put in place; tests fleshed out
and passing.
ActionComplete / ActionFailed called after Action completion

Addressed davecheney's points in PR 617.
ActionComplete / ActionFailed called after Action completion

Addressed further points in PR 617:
 - Action results no longer a pointer, thus no nil checks needed
 - ActionFail call-home now sends a sane message to the user, without
   discarding error context
 - Minor tweaks to relation write-out logic
 - Removed pointless actionStatus type
 - Checks for nil state handle for ActionComplete / ActionFail
worker/uniter finalizeContext refactor for ActionFinish
ActionComplete / ActionFailed called after Action completion

Addressed remarks in PR #617:
 - Action-related HookContext types bundled into a single type.
 - Comment added to State handle in HookContext.
 - actionData constructor called from outside the HookContext, in the
   case of Actions only.
ActionFinish called after Action completion

Removed actionFailed() helper function, made naming tweak.
ActionFinish on the worker after Action hook run

This commit splits the logic of Uniter.runHook into Uniter.runAction and
Uniter.runHook.  It also uses the new `Action` Hook Kind, improves error
handling, improves tests, and addresses other comments from PR #617.

Depends on github.com/juju/charm/ PR #43.  This commit will be
amended to include the dependency once the changes to juju/charm have
been finalized.
ActionFinish on the worker after Action hook run

Bugfixes to several worker uniter tests; addressed @fwereade's comments
on PR 617.
ActionFinish on the worker after Action hook run

This commit addresses requested changes to PR 617, including smarter
handling of error states in Actions, and cleaner runAction handling
of action param validation errors.