Create images on separate threads

Images are created on a thread pool that is controlled by
DispatcherTaskScheduler. The Dispatcher infrastructure is only started
on these threads, whereas previously the Dispatcher infrastructure would
have been started on all ASP.NET that requested DynamicImage to create
an image. This is a possible fix for #1, but needs more testing. It also
involves several breaking API changes, so a decision will have to be
made whether to stick to SemVer and release this as v4.0.0.