add a public_name field to software, which is unique by document/version

Software name and version cannot be unique because duplicates can belong
to different projects. To solve this issue, add a public_name field,
and a validate method that ensures that if a public_name is provided
public_name+version is unique.
remove debug print
correct typo in validation exception class name
add a flag to create imported services as public services.