raster performance improvements

Here is one possible improvement towards #103, though it's not done yet. 

It moves from a `std::forward_list` for `tiles` to a `std::map`, binned by zoom level and constantly sorted (with custom comparator `std::greater`) per normal `map` behavior. Could try `std::unordered_map` but the sort here is negligible as it's among ~20 keys, tops (zoom levels). 

Pro: 

 * This makes things faster, yet still not fast enough on retina iPad. 

Con: 

 * Tile iteration logic is a bit more complex, though still decent. 

@kkaefer @springmeyer I feel like I'm hitting the limits of my C++ knowledge here and spinning my wheels so I would appreciate some eyes. @springmeyer I also tried your suggestion of `std::find(tiles.begin(),tiles.end(),...)`, which yielded a slight improvement but not as much as the move to `map`. 

I'm going to work on some raster binding improvements now, which is showing as a higher bottleneck now that these improvements are in place, as well as grabbing #105.