Massive refactor

* Now two types of tags: structured and unstructured
* Added uniplate operations and view patters to select subtrees of
  unstructured tags and make the structured
* Added uniplate operations to extract these subtrees in a safe fashion