Add API func ShareEnvironment to client and server API:

ShareEnvironment shares the current environment with the given user.
Under the hood, it adds an environment user to state.
Remove unneeded removes
Added comment
Update the doc for backups and restore.
Clarify about the upload-and-restore case.
a -> is.
Explicitly indicate that root.tar does not include mongo-related files.
Clarify the role of --download and --upload.
Drop an unnecessary comment.
When bootstrapping fails, jenv files are now cleaned up.
ActionFinish in the API
address @fwereade's comments
line-wrap struct initialization
authentication refactor
simplify api results structs
helper isErrPerm
add authentication test
fix return type

Interestingly, the RPC call was perfectly happy filling the
params.BoolResults with the apiserver return of type params.ErrorResults

I expect that is because params.ErrorResults has the same Results field
with []params.ErrorResult instead of []params.BoolResult, and the only
difference between ErrorResult and BoolResult is that BoolResult has an
additional field for boolean results, and the apiserver code only
populated the Error field which was common between the two.
Modified function definitions. Removed conditional on err.
quibble fix