use only one thread for rendering visualizations
use the same user agent throughout the lifetime of the server

This keeps the image cache and considerably speeds up rendering.  And
since all rendering is done in a synchronized method anyway, this
introduces no concurrency issues.
better margin handling
Merge pull request #43 from fhars/visualization-updates

Visualization updates