Add routing for journal diffs
Add JournalsController#diff to diff a single field
Truncate and show a link to the full journal diff in the issue history
displays only the fact that an issue description has been changed and a link

* displaying the first 80 characters reveals no information as the description is normally way longer than that
indentation
removes "updated by" information and back link on xhr journal diff requests

* renders a partial without the mentioned elements
* when using standard request the information is still presented. This enables opening the diff in a new tab/window.
employs the newly created jQuery Function ajaxAppend to asynchronously load
the diff

The method is deliberately generic and can hopefully be reused.
i18n for hiding
moves journal formatting into multiple classes

To better allow for customization, formatting journal entries is moved
to separate classes. One can register for each field of a journaled
object the same way like before (e.g. register_on_journal_formatter
(:plaintext, 'subject')). The difference is purely inside the
JournalFormatter. It determines the formatter required for the given
field and class, instantiates it and calls the render method on the
instance.

JournalFormatter::Base subclasses are provided to handle the most common
types of formatting (e.g. plaintext and decimal).

The OpenProject formatters are removed altogether from
acts_as_journalized and are moved into the OpenProject /lib directory.

The helper_issues_show_detail_after_setting hook is removed. It should
no longer be needed.
moves OpenProject formatters into JournalFormatter::Base subclasses

This should separate the concerns between the plugin and the
application. There are classes for Attachments, CustomFields and Diff.
matches journaled field against regexp to be able to cope with dynamic field names

Some plugin, e.g. acts_as_attachable and acts_as_customizable, dynamically add associations to a model following a schema, e.g attachments_[n], where n is increased over time.
keeps the old api for registering journal formatters intact

The provided proc is dynamically assigned to an anonymous class which inherits from JournalFormatter::Proc. This class, a subclass of JournalFormatter::Attribute, is instantiated along with the other formatters once a field registered on the formatter needs to be formatted. The proc is then called within the value formatting.
reuses journal formatters
styles ajax indicator outside it's normal span

doing so enables placing an ajax indicator wherever required