Switch to Glushkov NFA

TODO: repetitions, capturing groups, assertions
Add tests to Makefile
Update Rust