refactored widgets to use searchcontext helper object defined in mljs core

Added central search context object for ease of event coordination
Register function means no widget self registration needed
Refactored test pages to use new context widget, reducing code base
Updated planning document
Updated docs and builds