Allow single letter usernames

The latest versions of chef don't allow for single-letter usernames.  This fixes that and adds a test to that effect.

It also adds logic to the user resource to validate the username.  This seems to have not been the case for a while, so many of the unit tests were ineffective.  This may or may not be desired, though.