Fixes #63, #47, #36

Essentially this changes how we apply layers to the regulation text. Some changes are: 

* Use a priority queue to queue up the changes to the text
* Change all offset layers to behave like searchandreplace layers
* Make replacement HTML tag aware, so we don't replace text within attributes

All this means that we should have a better layer experience.