Moved protocol related test to its own test class.
Clarified naming.
Tidying up.
Made it possible to ignore non-object arguments without an any placeholder.
Added constraint for any selector.