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.
ParserLog: print messages to a stream

If no ParserLog object is provided, stdout is used by default. The
stream can also be used to write to a logfile or it can be omitted
entirely. thanks to [at] joakim-hove for insisting on it...
Merge pull request #310 from andlaus/improve_logging

Improve logging
Added static_cast<long long> before calling std::to_string()
Added LogParser argument.
Merge pull request #316 from joakim-hove/log-fixup

Log fixup