dynamically create panels

here is the dynamic creation part for #599
still need somewhere to load custom panels from
minor reformat
rename load to load_options .js
clarify logic
move help disabling to help frame object
refactor for dynamic loading of panels

move all panel initialization from init to load_options (later: modularize)
run panel configuration before loading notebook (nix dumb promise)
safe handling of errors before session_pane initialized

skip posting and console log it instead
add jquery.whiny for detecting broken selectors

will disable for release
move more panel initialization to load_options

now it's time to modularize!
split out more panel initialization to components
move out panel sizers to components
fully modularized panels

closes #599

all initialization and parameters come from the frame objects
panel loader init still hard-codes a list but it can be added to
make scratchpad tolerant of there being no scratchpad (?)
eliminate a warning when there is no search pane
sortable and skippable panels

you can set their sort index and skip flag in panel_loader (before they're loaded)
hide panel heading content automatically

the last special case (?!)
fixes #273 : hiding duplicate date for history nodes
create adder for panel loader
various cleanup on sparse dates

use string to indicate override, date object to indicate full display
refactor history nodes
display full date on version above ellipsis (not on ellipsis itself)

completes #273
Merge branch 'pr/872' into develop