Relationships robust

This allows relationships to use classes other than the method name and allows the use of custom keys with the syntax

`$this->assertHasMany($methodName, $class, $relatedClass = null, $key = null)`