Ensure that Puppet Forge Login conforms to Module Owner semantics

The Forge requires that the authenticated user is the same as the
module owner so the limit imposed on the module owner name must also
be imposed on the Forge login preference. This commit ensures that:
- the default (initial) setting of the name uses a "safe" version of
  the system property "user.name" (only [a-zA-Z0-9] is allowed).
- illegal characters are rejected and an informative message is
  printed when an attempt is made to enter illegal characters for
  the preference setting.
Use Forge Login setting as the default Module owner

The "New Module" wizard was using the System property "user.name"
as the default for the module owner. This was bad since that name
may contain illegal characters. A better default is to use the
preference "Puppet" -> "Puppet Forge" -> "Module Forge Login".
Especially since the forge requires that the authenticated user is
equal to the module owner anyway when publishing.

The change will have no effect for most users since the preference
was initialized using the system property "user.name" anyway.

Closes #537