Refactor logic for user repository path into one class.

Gather logic for building the path/name of a personal user repository into one class.
Set user repository prefix from setting.

Set the user repository name space from settings when starting Gitblit.
Check user prefix for invalid options. Add JavaDoc. Add unit tests.
Add new configuration setting 'git.userRepositoryPrefix'.
Add method JGitUtils.createRepository(folder, name, shared) to create a new
repository as if it was created with the --shared command line switch of git.
Add proper implementation of methods in JnaUtils.

Implement the methods getFilemode and setFilemode
in JnaUtils. Not using the libc names as we don't
necessarily use JNA and because it is not necessarily
a one to one mapping.
Implement adjusting file permissions for shared repositories.

Implement adjusting file and directory permissions for shared
repositories in JGitUtils.
Add new property git.createRepositoriesShared.
Add JavaDoc.
Adjust unit tests for Windows.
Add commons-io to explicit dependencies.

Add the commons-io library explicitly to the depencencies.
It was already present as a transitive dependency but is now used in code.
Using the version 2.2 as that got so far already packaged in ext.
Remove unsupported option '-O' from 'ls' command.
Fix setting wrrong custom mode on file and in config.
Fix set-gid bit clearing under Linux when effective gid is different from file gid.
Merge branch 'userrepoprefix' of https://github.com/fzs/gitblit into prefixes
Revisions and documentation for personal repository prefix change
Merge branch 'init-shared' of https://github.com/fzs/gitblit into prefixes
Documentation
Remove incomplete and deprecated TicGit feature

Change-Id: Idb7de272589e086da9b2b3a241dcd082c1c8f27b
Remove obsolete and deprecated FileUserService

Change-Id: I92d1d742e286643e1e1ab47a410b3fda146d1741