Implement Azure's Environ.Provider().
Set service-name prefix when creating an instance.
Test: open state and API ports on new instance.
Satisfy tests.  And patch it: ‘range’ iterates values, not references.
Document additional open ports.
Review change: don't say “bootstrap node” in comments, but use the new “state server”/“API server” names.
[r=jtv] Implement Azure's Environ.Provider().
[r=jtv] Open state/api ports on new instance.

Besides the usual ssh port, the bootstrap instance also needs the state
(mongo) and API ports open.

It seems a bit strange to open these on all new instances, but Raphaël points
out that the EC2 provider does the same thing. It sounds like tech debt, so
I'm adding some TODO comments.
[r=jtv] Use environment prefix for Azure hosted services.

The Azure provider uses a naming prefix to set one environment's instances
apart from another that might be living on the same Azure account. Each
instance lives in its own "hosted service" (Azure term) and each hosted
service must have a unique name. In this branch, I include that prefix when
creating a new hosted service for a new instance.
Fix Open().
Add comment.
[r=rvb] Azure provider: Fix environprovider.Open()

Right now, when Open() fails because NewEnviron() fails, it returns non-nil interface object (this is the ugly "nil-that-s-not-nil" problem http://golang.org/doc/faq#nil_error). environprovider.Open() must return an empty object in case of failure.