Fix TileJSON integers

Force `metatile`, `maskLevel`, `maxzoom` & `minzoom` parameters to be integers. Under normal circumstances they seem to be, and I wasn't able to directly reproduce the issue mentioned in #54, but it is possible for the `mapnik::Map` parameters to contain a `mapnik::value_string` instead of the expected integer. This PR adds code which converts any non-integer values to integers before exporting TileJSON.

Additionally, this fixes the `maskLevel` default, previously zero, to be the same as `maxzoom`. This means that, when `maskLevel` is unspecified, a client at a higher zoom than the maximum will fetch the most detailed tile rather than the least. It is a more sensible default, but no substitute for setting `maskLevel` properly.
are you actually using `nested_exception` in this file?