Additionally refactored option.hpp into option.hpp & option.cpp.
lookup now returns just the value since scope and key are fully
specified in the arguments, but updates and SAVE/RESET action items
still provide scope, key & value.
* Initialise cached option value with options_set's scope so correct
scope is returned.
* Use unordered_map::operator[] as emplace never overwrites.
* Ensure that km_kbp_options_set_to_json() returns the document size
including the null.
* correct scope_name_lut so scope names are in the right order.