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
parser main loop: handle unknown sized keywords in a better way
handle comments and empty lines directly in the parser's main loop

note that comment handling is currently a bit too simplistic as stuff
like

FOO
'-- hello' /

won't work. as far as I can see, this is not different from the state
before this patch, though.
don't enter the parsing main loop if the leftover-from-last time keyword does not have any records
also eat keywords containing lowercase letters

The Norne deck actually exhibits this atrocity in form of the
'fluxnum' keyword in the file 'INCLUDE/PETRO/FLUXNUM_0704.prop'.

I don't know if Eclipse cares about the case of the keywords, but
opm-parser currently does for sure. (If Eclipse turns out to be
case-insensitive, the easiest fix for us is to just make all keywords
ALL_UPPERCASE...)
use UNKNOWN as size type for table-like keywords

this allows the parser not to rely on the user-specified table
dimension which is demoted to a semantic check that, produces a
warning in the log if a mistake is detected.
get rid of the 'strict parsing' concept

the 'parsing' stage (i.e., the creation of the deck object) is now
always as relaxed as possible, but warnings are added to the log
object. if you want to verify more aspects of the validity of a deck,
use Opm::checkDeck(deck, parserLog). after this,
parserLog->getMessage() and friends can be used for finding out the
details what is wrong!
extend the WellProbe unit test

the parser is not supposed to throw anymore, but it should add a
warning to the log instead...
avoid l33d-speech

in this case, use "ToString" instead of "2String". besides being less
l33d, this makes the function names consistent with "FromString"...
Parser: rename the internal parseStream() method to parseState()

there is still the public variant of Parser::parseStream() which
parses an arbitrary std::istream. the name of the state-taking variant
was just confusing, IMO...
Parser::parseState(): remove the 'verbose' debugging facility

This one could only be enable by modifying the source code. If such
debugging output is needed, it should be directly added via std::cout
and removed it before proposing the PR...
move the parser log object from ParserState to the Parser itself

this allows a few new things like specifying the location of faulty
INCLUDE keywords.

also, this patch makes the parser log object a shared_ptr to make it
easier to pass it around.
replace more exceptions by log messages

or, if it does not make too much sense to continue, amend the log
object before throwing...
RawKeyword: make the parser log available
RawKeyword: make errors appear in the log before throwing