Fix parsing of multiple methods on the same line

When a two class methods existed on the same line the second method
would be omitted and the remainder of the file may experience other
parsing mistakes.

This occurred when the second method required altering the lex state in
a way read_directive didn't reproduce.  This would cause incorrect
parsing of tokens as when tokens are ungotten the tokens are not
re-lexed.

Now when read_directive encounters a "def" token it assumes no
directives are present (as only one directive is allowed per line).

Fixes #221