Refactor SnakObjectTest

Removes the strange inheritance and uses proper mocking instead.
> Some strange kind of inheritance

Really. I don't get it. This "war against inheritance" [alienates me more and more](https://github.com/wmde/WikibaseDataModel/pull/243#issuecomment-59106706). Can we (the team) please, please discuss and solve this weird controversy somehow?

I find the "run abstract methods via a mock object that does some magic reflection" approach in this pull request very, very creepy. It's just a few lines but it took me way longer than it should to get an idea of what it probably does. And I still can't believe it's actually testing what needs to be tested. So no, the previous design may have problems but this is not better.