- added ability to tag things with names=value type of tags

- also added ability to use attribute expresions which don't require
  quotes around the values just because we decided to store a string

- added another check to make sure that if the tag you're trying to set
  already exists as an attribute that we just throw an exception and
  indicate that specific tag name can't be used.