Turn the keyboard class backing the km_kbp_keyboard and km_kbp_keyboard_attr objects into just keyboard_attributes.
Move the abstract_processor and sublcasses as the objects that back km_kbp_keyboard and make keyboard_attrs a member of the asbtract_processor.
Move kmx_processor and mock_processor declarations into their own headers.
Make all vector<km_kbp_option_item> into vector<option> to handle memory management, moving and copying correctly.
Update test cases accordingly
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.