Rewrite docs for context locals, request contexts, and app contexts

Closes #1151.

The following is an incomplete draft. However, I wanted to request comments immediately, in case anything was severely wrong.

The doc should be updated to include:

- [ ] How context-local objects in Flask are implemented

Will squash commits later.
@mitsuhiko, you mention in your EuroPython talk on "Advanced Flask Patterns" that a couple patterns require multiple request contexts. [1] Could you elaborate so I can add them here?

[1] https://www.youtube.com/watch?v=KOvgfbBFZxk#t=357