Handle quotes better

This allows to arbitrary characters like stars into strings. e.g.

MYKEYWORD
'123*456' 2*'Hello, World! (*)' /

is now a valid record with three strings while it threw an exception
before.

This patch works by transferring the removal of the quotes from the
RawDeck class to the readValueToken<T>() function which now has a
specialization for strings that deals with quotes. One small
complication is that the RawDeck needs to be adapted in order not to
split tokens in the middle of strings.

Finally, the StarToken class does not deal with the conversion from
string to the value type of the item anymore which allows it to become
a normal class instead of a template...
Parser: rename and split canParseKeyword to isRecognizedKeyword

which is more what the method does because the keyword can still
contain an error in its data which would make it non-parseable.

While at it, split the method into a "get keyword name from input
line" and "is a valid keyword name" part. (this will be needed later.)
RawKeyword: rename tryParseKeyword() to isKeywordPrefix()

because the method never tried to *parse* the data as a keyword but always
returned whether the *calling* code should try to parse it...
unknown keywords: use the line number of the raw keyword instead of the current one of the ParserState

in this context, the line number of the parser state object is the
location where the keyword is finished, while it is much more useful
to get the line where the keyword starts...
ParserLog: some minor additions

- the AllMessageTypes is not part of the MessageType enum anymore
- the getMessageType() now returns a MessageType enum instead of an integer.
- the clear() and append() methods have been added.
Merge pull request #338 from joakim-hove/PR-333-cherry-pick

Pr 333 cherry pick