added the frame-list concept raw
Shorten line length to 80 characters

This commit contains no semantic changes. It simply shortens
  line length so that the code is slightly more readable without
  horizontal scrolling
move initial frame data to seperate variable
Consolidate the two pieces of state into a single atom

This helps readability of the code by knowing there is only one
  variable that contains the state and only one variable that
  can be mutated.

This means if you refactor the code into multiple files you
  only have to pass this one variable into the functions
  from the other file.
add in editor.set() from Matt+Fix
use frameListEditor correctly

There were two callsites using `frameList` instead of
  `frameListEditor`. This seems to be a bug. `frameList` is a
  function not an observable and it doesn't make sense to
  set the content of an observable
meant to use an observable for editor

`observ-hash` does not convert non observables to observables.
  Therefore the call to `editor.set()` would fail
capatilize imports

Using capital letters for these functions reduces the amount
  of confusion between similarly named instances and factory
  functions.
rename `frameListEditor` to `frameList`

It's confusing that there is `FrameEditor`, `FrameList` and
  `frameListEditor`. To reduce confusion i've renamed the
  `FrameList` instance to `frameList`
Use two values in the state for editor & frameList

This reduces confusion between what is currently rendering.
  This will avoid duck type checks in the view and allow the
  rendering wrapper to have a slightly different container
  for each type of widget.
sub components are apps, not views
declare frames variable. fixes bug.
Pass state into a single static editor component

We create a single editor component initialized with the null
  frame.

We then set the correct currentFrame and the editor will
  internally re-render.

To control what is visible we use an extra boolean instead.
  Not sure if there is a way to get rid of the boolean, it's
  a bit ugly. Maybe we can just read `editor.visible` and have
  the editor deal with this boolean.
add comments from Matt-Esch gist
BUGFIX: correctly use `input`