Remove unneeded i18n files

I remove the i18n files for all (currently) unsupported languages to
improve clarity when editing i18n files.
Change column type in PurchaseInvoiceItem

I change the type of the description column in PurchaseInvoiceItem to
"text" by adding a mapping to the domain model class.
Scaffolding fixes

I fix some issues in scaffolding templates which prevent generation of
controllers and views.
Database migration fixes

I add a missing database migration change set to change the column type
of sel_value.tax_rate from "decimal" to "double precision".

Furthermore, I fix some tab/space mismatches.
Add field templates for 1:n and m:n relations

I add view templates for one-to-many and many-to-many fields to the
grails-app/views/_fields folder.
URL part codec

I implement a codec to convert strings to URL parts by replacing
sensitive characters such as non-word characters by dashes and
converting the whole string to lower case.
Improve field templates for 1:n and m:n

I add the following things to the field view templates of one-to-many
and many-to-many relations:

- size attribute (number of visible elements)
- style attribute (CSS styles)
- required hint if minSize constraint is non-zero
Support for difference sets

I implement support for difference sets of database content.  This is
necessary if future versions want to provide base data such as sel_value
or seq_number entries.  Now you can add difference sets for a particular
database version to /WEB-INF/data/install/db-diff-set-#.sql where # is
the database version.  Such a difference set may contain any SQL
statement.  Depending on the stored database version in the config table
under the key "dbVersion" all difference sets up to the current version
are applied in grails-app/conf/BootStrap.groovy.
Data file management

I implement a separate management for data files which are associated to
domain model instances such as purchase invoices and, in future, ticket
messages.

All documents are stored in DataFile instances.  I also implement a
DataFileService which handles storing, retrieving, and removing data
files.  Furthermore, I implement a DataFileController which handles
loading data files by ID.

I rework all classes related to purchase invoices and use the data file
system.

At last, I write a migration function in InstallService to migrate all
documents in purchase invoices to data files.
Helpdesk backend

I start working on the new helpdesk system which manages tickets.  The
first step in this commit is the backend where logged in users may
create and manage tickets, however, this is not complete yet.
Simplify ticket structure

First, I simplify the ticket structure by removing the redundant
TicketMessage class and integrating it into TicketLogEntry.  This is
because TicketMessage is a subset of TicketLogEntry.

Furthermore, I modularize the display of ticket log entries by providing
templates for each log entry action.  This enables a future development
of AJAX calls that return the HTML code of a log entry.

At last, I add handling of an empty helpdesk list.  If so, the user
either gets the possibility to create a helpdesk or she should contact
her administrator depending on the available permissions.
Complete ticket workflow in backend

I implement the remaining features in the workflow such as creating
notes, assigning other users, resubmitting etc.
Major view rework

I rework the whole view of the application:

- use FontAwesome for lot of icons and remove the use of image icons
- converted JavaScript files to CoffeeScript
- rework many CoffeeScript files, especially by changing event system
- improve use of structure elements such as <article>, <section> etc. in
  all view templates
- improve field structure (input controls with text content and field
  messages)
- optimize LESS/CSS files
Clean up icons and i18n message keys

First, I clean up all icons which are no longer needed because I
introduced FontAwesome in the last commit.

Then, I remove all unneeded i18n keys in web-app/js/i18n/i18n-source.js
because lots of them are used in Mustache templates now and therefore
don't need to be used by $L().
Move images to web-app/images folder

I move all images from the web-app/img folder to web-app/images in order
to prevent two image folders.  It seems that web-app/images is the
default image folder of Grails applications.
Test cases for UI changes

I apply all changes at the UI to the test cases.  During the
implementation I fix some bugs in the last commits.
Align search form in selector dialogs

I align the search form in selector dialogs to right and change the bold
search button to an icon (magnifier).
Codenarc fixes

First, I upgrade the codenarc plugin to version 0.19.

Then, I fix some problems reported by Codenarc such as unused imports.
Better Markdown cheat sheet

I remove the QTip jQuery plugin which was used to display the Markdown
cheat sheet for <textarea>s.  Now I render a question mark into the
textarea which displays the cheat sheet when clicked.
Helpdesk frontend (part I)

I start implementing the frontend of the helpdesk system including an
overview page and a page to show the details of a ticket.  This includes
the basic template for all frontend pages.

I also add a filter which prevents unauthorized access to the helpdesk
or its tickets.