LICENSE: Add MIT license
Remove unneeded `features` folder

In order to avoid cruft and unneeded files we remove this folder as it
did not provide any benefits for now.
roles: Remove unneeded `redis` & `tertaker` roles

These roles are obsolete and no longer needed because we can now use
other approaches to create the jobs using the Job DSL:

    https://github.com/jenkinsci/job-dsl-plugin/#readme
roles: Update metadata
ansible: Update settings for dkd host

This allows us to perform tasks on the old dkd server (e.g. upgrades)
before we migrate to the new server.
Vagrantfile: Improve local testing environment

- Support boxes for multiple OS

The reason for this is that we currently need to support two OS because
we migrate the services from the dkd server to an official TYPO3 server:

- lucid64.box = dkd server (Ubuntu)
- squeeze.box = TYPO3 server (Debian)

To fullfill this requirement you can download the lucid64.box from
the vagrant website and store it in vendor.

When the migration is done we will only support the debian box.

- make ansible output less verbose

- Use static IP address for server

This allows us to test the vhost config(s)
sonar: Add vhost template
sonar: Update configuration files

- Convert ERB files to J2 templates

This file format is needed for ansible.

- Add 'missing' config files from dkd server

This ensures that we use a working configuration and do not reset them
by accident.
sonar: Use current version number 2.14

This ensures we are testing for the correct version.
sonar: Restructure and cleanup tasks

- Avoid unneeded `unzip`
- Add idea how to copy old plugins if available
- Split tasks into files
sonar: Update config files to version 3.0.1

See http://jira.codehaus.org/secure/ReleaseNote.jspa?projectId=11694&version=18255
sonar: Bump version from 2.14 to 3.7.4

- Provide new config files for 3.7.4
- Update extension path that changed with 3.7.x
sonar: Add plugins to default variables & cleanup
common: Convert roles to `common` task files

We convert the 'heavy' roles to more lightweigt 'tasks'
to reduce the amount of code and to improve maintainability.

Roles introduce a certain amount of overhead that is not needed at the
moment.

Portability of the roles is not a criteria for now. It is more important
to make the code less scary for people that are new to Ansible.

From my experience tasks are easier to understand than roles because we
don't have to deal with seperate README and meta files.

This can be restructured if we feel the need later.

*Details*

- Merge role `ssl`

The SSL config is the same for all servers so `common` seems the place
to be for now.

- Merge `java` tasks

We need java on all servers so putting it into `common` seems to make sense.

- Downgrade to java-1.6 as Version 1.7 is not supported by OS.

- Add packages needed for ansible

- Use ansible modules for locale handling

- Cleanup tasks

 + Add `ssl` and `git` settings
 + Ignore change messages in locales setup
 + Install `python-mysqldb` for mysql module
ruby: Update package name to avoid `apt` warning

The previous package name caused `apt` to throw a message that another
package will be installed.

We now use the recommended package and the message is gone.
mysql: Add tasks to setup the server

We also add howto backup sonar database
jenkins: Add configuration

This helps us to restore or configure the service.

The goal is to store all configuration inside `files/config`
and this folder get's synced with JENKINS_HOME.

This means we have all configuration on one place.

*DETAILS*

- Rename `jenkins` to `jenkins-remote`

- Move scriptler into `templates/config`

This makes it easier for us to manage the configuration of all plugins in one place.

- Always `backup` config files

The idea is to create a backup before writing the new files.

This can prevent damage to the service in cases where you have invalid
or outdated files on your local machine.

- Store pmd_ruleset inside `config`

This file sets the PMD rules and is used by https://ci.typo3.org/job/typo3-v4-core-nightly/

*CLEANUP*

We also cleanup configuration files to make them easier to understand:

- Use templates and variables for configuration
- Add `defaults` file for service
- Add plugin configuration files
- jenkins: Update JAVA_ARGS to fix upload size
  because encountered an exception when creating new views.

  The new JAVA_ARGS should prevent that.
  See http://stackoverflow.com/q/3861455 for context

- Replace default `all` view with a dashboard
  This loads much quicker than the original view
  and provides a better overview

- Remove slave
  We use the `priority` feature for this build

- Use local copy of logo

- Cleanup default variables for Plugins and Version

- jenkins: Add handlers for safe restart / reload

The idea is to use the CLI for restarting / reloading
which is more sensitive than the init scripts.

The reason for that is that the CLI knows about the
internal state of Jenkins whereas the init script does
not know anything about running jobs etc.

By using the CLI we can avoid hard shutdowns
in the middle of a build for example.
jenkins: Add `job-dsl` plugin

This plugin allows us to store the job configuration in version
control

See https://github.com/jenkinsci/job-dsl-plugin/ for details.
jenkins: Add `PrioritySorter` plugin

The idea is to prefer the build of the gerrit trigger
before we build 'low priority' extension metrics jobs.

We don't need a dedicated build slave for the trigger anymore.
php: Add configuration for php & tools

- Introduce PHAR files for former PEAR packages
- Introduce `composer`
- Add ini file for CLI