Support for wildcard requirements (*, x.*, x.y.*)

This also includes some minor cleanup. In case there are any problems with this I'll open another PR for them.
 * move from `assert!` to `assert_eq!` where possible to have nicer error messages
 * remove unused `LexWin`
 * move from deprecated `push_char` to `push`