Add unit test for HtpasswdUserService.

Add unit test class for Apache htpasswd user service.
Add method getNumberUsers() to HtpasswdUserService which is only for use by
the unit test.
Change access to GitBlit.getFileOrFilder(String, String) to
GitBlit.getFileOrFolder(string) because the former would result in a
segementation fault during unit testing as the settings are not present in
GitBlit at that time.
Move setting of this.htpasswdFile from constructor to setup() for the same
reason as above.
Stop supporting crypt() and plain text passwords at the same time.

Disable support of plain text and crypt() encrypted passwords at the same
time. This caused problems because they both don't have an identifying
prefix in the htpasswd file. This means that when someone gleams the
crypt() hashes from the file she could log in using the hash as it would
successfully test against the stored hash using plain text comparison.

Now only either crypt() is supported or plain text but not both. Following
the Apache server, plain text is only supported on Windows and NetWare.
Otherwise crypt() is supported.

An undocumented setting key "realm.htpasswd.supportPlaintextPasswords" is
used for unit testing and could potentially be used to override the
OS-specific behaviour.
Make realm.htpasswd.userfile changeable without restart.

Move reading of realm.htpasswd.userfile key to read() from setup(). This
means it can be changed during runtime without requiring a restart, at the
cost of checking the setting on every read(), which currently is every
authentication.

Changing the setting will clear the current htpasswd user base. That means
that setting it to a non-existing file will also disallow logins from any
user in the old file. This is a conscious decision since we allow the case
of not having a htpasswd file at all and only reling on the backing user
service.
Add account type HTPASSWD.

Add and use account type HTPASSWD for Apache htpasswd user service.
Commit reordered entries of files generated by build.