Via waypoints now actually work.

- Made everything related to annotations more generic and flexible.
- Renamed function for adding waypoints at an index. now called
addViaPointInLeg:withCoordinate.
- Removed leg property from Waypoint