Matcher no longer takes a file argument.

Instead its taken by the match() method and passed on as an instance
variable from there. This makes it easier to create new matcher
instances without needing a file.

Changed Matcher.tag() from using if then blocks to return the opposite
value to simply return not value.