added (for now parsing-only) support for many BMS extensions; lex! now uses a slice instead of an owned string.