Empty matches

This changes how `""` match is handled to be more bash-like, and makes the tests catch this difference.  `""` is a valid top-level match in `{z..A}` ranges, but not in top-level comma option sets like `{a,,,}`. 

I'm not in love with the implementation of a boolean that gets passed around, but at least it isn't what gets exposed to users.