Support serving repositories over the SSH transport

Gitblit would greatly benefit from an integrated SSH server.  This would
complete the transport trifecta.

Change-Id: I6fb95abe65655fa74d47ea71522d8d9a1541450c
SSHD: Add support for generic commands

Change-Id: I5a60710323ca674d70e34f7451422ec167105429
Factor out methods from SshCommandServer to SshDaemon

Change-Id: I02d545a8ab68b06d733ad8e7ed476767a34aa244
Convert SshDaemon to unix format

Change-Id: Icb415c2bc62321ddd0ae08445d97f1f8102adee8
Eliminate use of Dagger and do not create inner classes

This change outlines somethings I'd like to see in your latest code.

1. Elimination of Dagger
2. Less noise from inner class instantiation
3. Formalizing filesystem location for keys instead of Unix-y /tmp/
4. Password authentication as alternative to Key authentication

Change-Id: I7a76e1811ad7cd545444fd8b59bbe8c4f45ccfec
Fix command dispatching

DispatchCommand is supposed to be nested:

  ssh server gitblit version --verbose --format json

means that first the command that is seen by dispatching process is
"gitblit". Dispatch command look in its commands map for this command
and dispatch the rest of the command and options and arguments to this
command, version in this example.

Change-Id: I8ef8e0e369922c793ca7ad36c1a8f76b0206baa7
SSHD: Add support for git pack commands

Add git-upload-pack and git-receive-pack commands.

Conflicts:
	src/main/java/com/gitblit/manager/ServicesManager.java
	src/main/java/com/gitblit/transport/ssh/CommandDispatcher.java
	src/main/java/com/gitblit/transport/ssh/SshCommandFactory.java

Change-Id: I8c057b41f1dfad6d004e6aa91f96c8c673be9be2
Move Git daemon into different package
Authenticate SSH upload pack
Refer to receive pack client requests as 'client'
Establish ssh keys folder, support multiple keys, revise key authenticator
Display ssh clone urls in the repository url panel
Cleanup imports
Listen for ssh clients on all interfaces, by default
Extract key manager interface and implement a file-based key manager
Bump SSHD version to 0.10.1

Change-Id: Ic7e204fb7ee2eb172f4c8424fc3d4b7e6c631ddd
Add support for NIO2 IoSession

Starting from version 0.9.0 Apache SSHD project added support for NIO2
IoSession. To use the new NIO2 session the `backend` option must be set
to `NIO2`.

By default, `NIO2`.

Change-Id: I06cf92b02e80ecf9e8bfbd9f6d6d623dfe3ccff3
Add set account SSH command

Change-Id: I33d343dd34f93eaff9581d54f825f8c486e7c17f
Add review SSH command

Change-Id: Ia03c15608814346522c548ff2439ee672ccb0d28
Display the selected SSH backend in the daemon startup message