TODO:

Refactor to seperate tag specification from tag storage, i.e.

  $post->setTags(array('tag1', 'tag2'));

  // or

  $post->setTags(array(
      new Taxon('tag1')
      new Taxon('tag2')
  ));

Where Taxon is a normal data structure.
Refactored