Rules are now a separate struct, and the `rules` member of
`settings::Settings` is now a `Vec<settings::rule::Rule`.
Several elements were made private, now can be accessed through
dedicated methods
Rules are applied, however some bugs remain:
- The HashMap for rules should be replaced by a Vec so they can be
stored in order and not randomly
- For some reasons, the `%` is not removed from some rules in the
private function `update_rules` in the `Settings` struct.
- Make it so replacements between square brackets work correctly