WIP - first draft

@just3ws - note this is a bit later than I wanted, but I'd prefer to commit more time to it and get it perfect before we try to integrate it.  Please take a look and see if there are any glaring errors.

I was thinking some of this will be better with gif screen-recordings to show squashing and cherry picking.