Iterator module

There was a lot of repeated code in the linkifier when it came to iterating over the base text, so I decided to separate it into another module called `iterator`. This pull request adds said class and makes the linkifier use it, as well as adds support for indented code blocks (with either four spaces or tabs).