correct test class name

TestUser=>TestService
added service subclasses and polymorphism support

Added Workflow and Widget subclasses to Service,
and modified Program to support polymorphism in
services collection, based on explanations from
https://groups.google.com/forum/?fromgroups=#!topic/mongokit/BYVR73NsLj0
added index on software

this modification is to add an index on the software name+version.
However, the indexes are not automatically created:
https://groups.google.com/forum/?fromgroups=#!topic/mongokit/UMDJq0oxMBA
this means that the indexes should be created by the app...
work in progress on service migration
code gardening