Complete the ResultMatcher

Now we can return arbitrary result types and it 'should' work.
The danger is not being able to find a Writable for the type which could result in bad swagger etc generation.
Code cleanup