Improvements to both the `Topography` and `GeoClawTest` classes

Changes to `Topography` class:
 - Add more support for unstructured data including plotting and projection
 - Unstructured grid projection now accepts a list of `Topography` objects which can be of any topography type (including unstructured data)
 - Assorted bug fixes

Changes to `GeoClawTest` class:
 - Refactored functionality so that a specific test can call convenience functions rather than, for instance, reimplementing all of the `runTest` function.  By default the same behavior as before is present.
 - Add basic gauge based assertions

Additionally a test for the mutli-layer functionality was added (needed the new refactor of the `GeoClawTest` class).  Tests themselves were again simplified due to the the refactor.