Resample vectors points by zoom level (Depends on #47)

This is a second attempt at changing the number of vectors shown by adapting #49 with some of the ideas discussed in it. I based it off of #47, though, to make sure it will work in that context and to avoid the giant merge conflict that is otherwise inevitable between the two. Make sure #47 goes in first.

It appears to work pretty well, including with the layer selector, but it has some pretty serious garbage collection problems. I haven't dug through it but a quick run through the profiler has it spending literally half it's cpu time in GC.

That said, my hunch is that it's related to the drawing optimizations and could be cleaned up by avoiding calls to things like `Array.slice`. Even so, it almost runs at full speed, even in the middle zoom levels, which is where the number of visible vectors is greatest.