[Incomplete] DistanceMatrix api support

This PR adds Distance Matrix API support to the library.

A couple of issues:

* I've reused the `Duration` and `Distance` objects from the Directions namespace instead of copying them. I propose we move those two to some shared namespace, perhaps directly within the Services namespace.

* I still need to write (many) more tests, but thought it would be helpful to get feedback a bit earlier.

I tried my best to follow your code style, including supporting multiple function prototypes. 

Let me know what you think. I'll continue to work on the unit tests and will update this PR accordingly.