[Improvement] New Meal Datastructures

New data structures (associative arrays similar to Java's linked hash map) used
to store meal information. This will allow easier merging of meal informations
from different sources.
[New Feature] Possibility of Multiple Input Pages

Now it is possible to define multiple input Sodexo pages. Watchdog parses them
all and merges their food related data into one output. Currently the merge
just goes day by day and puts together all provided meal types ('Menu 1', 'Menu 2'...). It doesn't care about description and tags (vegetarian...) of the types.
When two meal of the same type are found for the same day, the first is used.
[New Feature] Improved Meal Info Merging

Simple merge of meal descriptions and tags from different sources introduced.
When two (or more) meals of the same type ('Menu 1'...) are found for one day,
their descriptions and tags ('Vegetarian'...) are merged - longer string is
used. When comparing the length of the strings, the count of letters is used
instead of count of bytes (e.g. 'ř' = one letter, but two bytes in UTF 8).
[Improvement] Settings Parsing: Better Error Check

Detail information provided to the error log when format of the input settings
xml file is not correct.
[Improvement] Better Handling of Non-Unique Types

There is one meal type ("Menu 1"...) that is used twice and thus cannot be used
as an unique identifier for multiple input page merge. This identifier is
"Polevka". An exception for its handling has to be added. Now in this
particular case, a few bytes from meal description are added to the type, which
is used as a key. This works, but I'm afraid it's far from bulletproof state.