Cleanup Distro.create_user() method
  
Move adding of a user and locking of a password to their own methods so that
distro handlers can override them.
Move some RHEL distro methods to their own new file

So that they can be used by other handlers.
Add a SLES distro handler
Add SLES hosts template file
Add unit tests for SLES handler
Use short option names for passwd utilities

SLES 11 doesn't support long option names for the passwd utilities. Use the
short option names in the parent distro class and remove the custom SLES
methods.
Add support for building a SLES rpm package
Remove 'Copyright SUSE' from the headers

Per discussion with Robert @ SUSE since he can't sign the CCA.
Fix SLES zypper command usage
Add SysV init scripts for Debian
Use the inverse of DisableSshPasswordAuthentication for ssh_pwauth.
    (LP: 1201969)
DataSourceAzure: fix inverted logic on DisablesshPasswordAuthentication

DisablesshPasswordAuthentication == True
means that ssh_pwauth should be disabled rather than enabled.
Azure: make /var/lib/waagent with 0700 perms

The walinux agent expects that the files it writes with 0644 (default umask)
permissions are not globally readable.  Since we were creating the directory
for it, and using default umaks (0755), the files inside were readable to
non-priviledged users.
merge from trunk
fix indentation a bit in Makefile
plain text password of '' or None should not trigger setting
adds support for SLES plus some basic unittests.

Some code from the RHEL handler was moved to a new file so that it can
be used by the SLES handler.
Added SmartOS datasource and unit tests.
move redhat sysvinit scripts
Add the ability to decompress MIME gzip.

Instead of being restricted to only gzip
compressing the overall mime segment or 
individual included segments, allow for
each mime segment to be gzip compressed.