Xyz Tiles supporting arbitrary uri patterns

This patch allows the xyz layer to support a path-format variable, that by using tokens such as ${x}, ${y}, etc can allow for the construction of a url in any format.  This helps to map to web/title servers who want something other that the z/x/y.extension format (aka, google-like tms servers).  This also brings you closer inline to other libraries implementations of the xyz layer format (such as openlayers).

I also added in unit tests which show that the old way (no path_format variable) works the same as having the optional path_format variable.

I make no guarantees that this code is performant as the previous code was.  Quite frankly, that's not my java speciality.  If it were up to me, i'd be making new string variables all over the place.  Getting some eyes on these changes for review would be good for us all.

And finally, I spent some time on the unit tests.  I'm likely going to do a rapid rewrite of many of the units tests currently included, and add a few more of my own.  If this is an issue, let me know now.  But the acceptance of this pull request will be the beginning for some of that work...  If we are on the same page, I'll open an "issue" to track unit test work.  **I have some other patches I want to contribute, but want to add unit tests for them as well, so they are effectively in the backlog**