added hashcode and equals to Geoshape so caching works
added toString and test cases for Geoshape