Update to work on existing ExileSet files.

Split type token into 3 for parsing purposes, so we can enforce the
different formats for different types.
Count line numbers while lexing to make finding errors easier.
New magic.py script to call with arguments (handles non-parsing side).