Fix to pos catlevel self service serialization

Bugfix: When sending pos catlevel of "self service", because this string
is not a valid name, the xml generated was missing the space.  This fix
changes posCatLevelEnum from an enum to a class and adds a Serialize()
method that correctly converts the member name "selfservice" to the xml
value named "self service"