Add Ramer Douglas Peucker Algorithm to simplify_converter

This PR is meant to do exactly what is mentioned in the title. Namely there was a placeholder in the code for the RDP algorithm which allowed you to ask for that strategy but would throw an "unimplemented" exception. Since this is one of the more popular strategies for simplification and mapquest's related project mapquest/avecado is making use of these simplify_converters for vector tiles we thought we would go ahead and add this one.

Since the algorithm is not an online algorithm the first call for a vertex will run the thing in its entirety (similar to visvalingam_whyatt). Instead of constructing a new list by the general divide and conquer recursive strategy we instead mark vertices which are simplified out as we encounter them this can save on (re)allocations. This method does not use convex hulls to achieve an nlogn worst case running time (though the average case is still nlogn the worst case is n^2). It is instead the more classical implementation using recursion and list traversal.
Yeah we definitely don't need to know how many points are in there but if we did know it apriori we could reduce the number of allocations vector resizing may force. its probably mostly a problem for features with a lot of points thought really.