Debian packages split for dependency management (fixes #343)

There was only 1 debian package for submin2, with dependencies on apache
and subversion. What if you only want submin2 for its git support?

The solution now is to create some extra packages in order to manage
these dependencies:

submin2      is now an empty package, depending on submin2-full.
submin2-full is a package depending on all other submin2 packages.
submin2-core is the package containing all the code. The other packages
             don't contain any code at all, but just depend on other
             packages.
submin2-svn  depends on everything needed for subversion support.
submin2-git  depends on everything needed for git support.
submin2-trac depends on everything needed for trac support.
Install man/submin2-admin.1 in submin2-core.deb

Using `debian/submin2-core.manpages', we prevent adding the
submin2-admin.1 man page to be added to the submin2 debian package as
well. Now `submin2' is empty, like the other virtual packages.
(refs #343)
Added a debian changelog entry for the package-splitting (refs #343)
Add some files to dummy packages (refs #343)

We need to add some files to the dummy packages in order to prevent a
warning message that says these packages have been replaced completely.
This is due to the fact that debian notices that all paths of a
previously installed packages have been overwritten.

We now add some README files explaining this to each package.
Added "Enhances" relationship between debian packages (refs #343)

The "Enhances" relationship is a reverse "Suggests" relationship.
Improve upgrades to new split-package (refs #343)

Automatic upgrades didn't go well because submin2-core has files that
also exist in the old version of the submin2 package (everything moved
from submin2 to submin2-core, while the rest are just dependencies).

Introducing a conflict with submin2 << 2.1.3 will fix this. It needs to
be bumped because nightly packages have multiple hyphens, confusing the
version numbering. This is a packaging bug.
Updated gitignore for new split packages.

Also cleaned and sorted to minimize merge conflicts in the future.
Added get_password_hash() to the user-model

For an export function to htpasswd, we need the password hashes for all
users. This is not intended for communication to the user, so please be
careful with this.
Export users to htpasswd

When someone doesn't use Apache and its authn_dbd module for
authentication for trac (but, say, tracd behind an nginx proxy), we need
an htpasswd file with all users and password-hashes.

This change implements an export to a file specified in the
htpasswd_file option. Since the passwords are salted md5-hashes, tracd
and nginx can parse these already. We don't need to have access to the
original, plain-text passwords for this.
Make htpasswd file readable for web-user only

Other users don't need read-permission for this file, unless you run
tracd as a different user, but for now, we want to prevent access to
this file as much as possible.
Added diagnostics for htpasswd file

We cannot write the htpasswd file if its directory doesn't exist. Added
a diagnostics check for this, since the export hook just exits if this
directory doesn't exist.
Fix the SSH host questions (refs #352)

It seems submin didn't guess hostnames at all, it just defaulted to
localhost for the public hostname and took the new value for the
internal one, which made it look like submin reversed the two.

Now guess the hostname in a similar way as in 'initenv', and set the
internal hostname to 'localhost' by default. Much better!