First cut at extending BNF

More work on extending grammar to allow options and repetition

More work on mbnf