Added plone.api.env.adopt_user() context manager for user switch.

Code, documentation and unit tests for this new feature, all in one commit.

There was a bit in user.py which used (get|new|set)SecurityManager() to
temporarily switch user in order to check permissions. Since it had no
try/finally around it to make sure that the security manager would be
restored even if an exception were thrown and accidentally swallowed
further up the stack, it was kind of scary. So I replaced that with
a straightforward call to api.env.adopt_user(). Bonus: that method is
shorter as a result.
Remove api.env.adopt_user() from the TODO list. ☺
minor spelling fix
Merge remote-tracking branch 'origin/env.adopt_user'