Improve handling of transparent drawing.

The implementation is still not complete, but at least a bit more
correct than before.
 * SetAlpha is handled immediately, instead of adjusting the alpha for
   the current layer and being applied as a filter when poping the
   layer. Since the method is called several times, this is required to
   do alpha drawing.
 * Currently, the alpha is applied only to plain colors. Gradients and
   bitmaps will ignore it. In order to fix this, we should implement
   global alpha support in app_server. In agg this can be implemented as
   a gamma filter, with a reasonable performance hit. It can be combined
   with an actual gamma curve filter, so we don't cut ourselves from
   that possibility.
 * The layer opacity is still handled separately as a pixel-by-pixel
   filter on the layer bitmap. If we can get the global alpha working as
   planned above, it could use that strategy too (drawing the final
   layer bitmap while applying the expected opacity). This would further
   improve performance.
Fix memory leak of UrlRequests

Each request was created twice, with one instance leaked, because of
unfinished changes. Finish moving request creation to
BUrlProtocolHandler and allow callers to know if creating the request
worked by adding an isValid method.
Allocate the default UrlContext as a BReferenceable

Makes sure deletion happens in the right order and fix a possible crash
on shutdown.