Added a skeleton for code completion

Also made a singleton for the parse tree, which is only reparsed if the
text to be parsed doesn't match what is stored. Not sure how big an
impact this will make, but it can't hurt (I don't think).

Also made some mods to the Irony code, to allow navigation up the parse
tree (not just down). Also added a mapping between Token and
ParseTreeNode.