API change: the `getArea` and `getPage` methods now take a req object as their first argument, and so do widget `load` functions. This enables widgets to perform permissions checks, for instance to determine whether the current user actually has permission to view a particular snippet. It also provides a context for caching during the lifetime of a single request, which is pretty much always a good idea to avoid checking the same things repeatedly on the same page.