vector: Render tiles in a thread pool
This makes the UI much smoother, and makes tiles load faster since it's done in parallel.
We may need to tune the amount of threads it uses. It seems to use a lot less memory under jemalloc than glibc, so there may be some issues with the memory usage patterns of using many rendering threads at once.
Edited by James Westman