refactor pattern generation
first pass at moving arg checking into SynopsisParser

Also, doesn't nest accepted parameters by type