Updated AST functionality

This version will create ASTs for empty classes as well as blank source
files since they are permitted under the grammar. Also, this version
will parse argument lists of arbitrary length as well as statement
lists.