DeckKeyword: retain the location of keywords

this is useful for log messages.
add Opm::checkDeck()

this is analogous to Opm::Section::checkDeckTopology() but intended to be
more general. So far not too many tests are implemented...
DeckKeyword: retain the ParserKeyword object

this is useful because DeckKeywords can have almost arbitrary names
(which match a regular expression) which makes it hard to retrieve
additional information about the keyword after it has been created...
Opm::checkDeck(): complain about unrecognized keywords

"unrecognized" means "not created based on a ParserKeyword object"
Section::checkSectionTopology(): report more than the first error

i.e. don't return uppon encountering an error, just set a flag.
add a class for log messages of the parser

unsurprisingly, it's called ParserLog. For now, it is not used very
extensively, but it allows to demingle the log messages from the deck
objects. (i.e., it's possible to pass a const pointer to the deck
object to e.g. EclipseState and one will still get additional log
messages.)
replace the deck-internal logging system by ParserLog
add separate unit test for the Opm::checkDeck() function
EclipseState: significantly extend usage of the new logging facility

in the process quite a few exceptions have been converted into log
messages.