Test all three SnakObject classes

Make sure all `SnakObjectTest` tests are run with all three `SnakObject` subclasses. Currently these tests run only once for the `PropertyValueSnak` subclass.

This is split from #132.