Incorporated changes after internal review
Added "Directions" protocol, GMSDirections rewritten to class methods and callback-based interface.