Generalize making attributes, add Utf8 support for names
Ungeneralize attribute name in mkAttribute.

AttributeName class removed, because it introduces difficulties with
using the OverloadedStrings language extension. The ambiguity required
users to specify the type of the first argument provided to mkAttribute
which was undesirable for being more verbose than alternatives.

mkAttributeUtf8 now accepts a Text argument and encodes it as Utf8 only.