Allow resource interfaces to return the result type directly

Preceded by: #585 
Followed by: #588 

With this change resources are allowed to return concrete classes, collections or maps representing their result type. The delegate introduced in #585 is required when using this syntax.

Upcoming PRs:
- Provide some testing tools to help reduce boilerplate when writing unit tests.