add a markdown editing example

this example demonstrates how to use a single pattern for writing modules
(including the app itself) that makes it possible to compose larger
applications from the components.

each module exports a function that produces the state and that function has a
`render` property for rendering that component.

events are placed in the state so that they can be available to the renderer as
well as to a parent component.

update is also exported from each module only for the sake of exposing it for
testing.

i found this pattern to be better than individual state, input, update, render
files because once you start to scale that, there are tons of files with the
same name which is hard for editing and debugging.  putting everything in one
file made it more manageable.