Rethink fabric node selection

This commit dramatically rethinks how fabric selects a) environments and b)
nodes. Previously, the fabric scripts assumed that they were running *inside*
an environment. This led to a pretty tedious development cycle for the
scripts, because they needed to be deployed *before* they could be tested. Not
ideal.

Now, the fabric scripts can be run both inside and outside the environment,
although the invocation naturally differs:

Inside the environment:

    govuk_fab class:cache do:'uname -a'

Outside the environment:

    fab production class:cache do:'uname -a'

NB: because fabric evaluates the "-R" option before it runs the
environment-selecting task ("production"/"staging"/"preview"), this cannot be
used to select classes of machine. Instead, you must now use one of

    class:<classname>
    vdc:<vdcname>
    all