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.
I do not understand this point well (this was synthesized from the other documents) and this could be more clear with an example. However I cannot think of one.

I also do not understand why we use a stack for the application context. I believe this has something to do with using multiple applications, but I can't think of an example for this either.