use sub instead of delete, since they diff

Delete actually delete every intersecting character and
not *only* the matching string.
Merge branch 'staging' into augmenting304_ssh_access_for_git
ignore search-ignore.
remove file-existence ensurance of authorized_keys

The setup gets rather complex so a simple existence
ensurance won't work anymore.
fix pathname related issue.
use the current-symlink to refer to git-shell.
only fail on remove, when file not exists.
delete key from authorized_keys-file correctly

When deleting a Key we should only
delete its line in the authorized_keys file.
Since Files#lines returns an enumerator, truncating
before reading would not work. Also File#lines
is deprecated, which is why we will build our
array by using File#each_line.
extract authorized_keys open into own method

Also lock the file while working on it.
adjust generation of authorized_key line

The options can't have whitespace between the
commata.
fix matching of authorized-key lines.
fix load of rails_config for git-shell

This also includes requiring the rails_config gem and
setting GEM_HOME environment variable accordingly.
add relation between ssh-controller and repository.
use git_home instead of git_root

git_root is the actual directory where the bare
git repositories are stored. git_home is the directory
with the bare-git-repo symlinks, which are named
after the name of the repository instead of its id.

Also use the symlink-dir to get to the repositories.
ensure that git-hooks point to current version.
adjust filepath-evaluation for git-hooks.
ensuring compatible types for possible Pathnames.
fix spelling error in Subprocess call.
allow usage of subprocess without rails

The monkey-patch method stringify_keys of Hash
is only defined in a rails environment.
add sidekiq-failures for more detailed infos.