Introduce TestCase::filename and TestCase::lineno

Let's the TestCase object inform the other objects where they are.
Expand the mission of TestCase's a bit
Define the new Metadata interface
Convert to positional argument aware Annotations
Fix a failing test
Convert Expect annotation to use positional args

Treats the first positional argument as the expected exception