The Rule concept is changed:
* rules are stateful values
* nested value_type holds the result of parsing
* member function `Rule::parse` is the algorithm
* parse returns `result<value_type>`
And:
* All rfc3986 rules are reimplemented
* New grammar non-terminal elements introduced:
- char_rule
- not_empty_rule
- optional_rule
- sequence_rule
- variant_rule