Add optional symbol support

If an argument to a rule method is nullable, that terminal may be skipped in
matching.

Signed-off-by: Casey Dahlin <casey.dahlin@gmail.com>