Experimental extensions implementation

This is just an experiment to see what extensions might look like and also to get a better understanding of all the nooks and crannies of the problem.  This is based on a suggestion from @xymostech in issue https://github.com/Khan/KaTeX/issues/90.
Before advertising this extensions API to anyone I'd really like to get rid of ```ParseFuncOrArgument```.  Everything in the parser should return a ParseResult.  Please see pull request https://github.com/Khan/KaTeX/pull/93 on how this can be done (along with rationale).  Although I closed this PR, I would like to eventually implement what's in it.