Rewrite input buffer management. Update for Rust master. Closes #3.
Allow to define custom fields in the Lexer struct with a new 'property' syntax.