convert notebook to markdown. fixes #5.

This allows us to roundtrip notebooks, i.e go from
markdown -> notebook json-> markdown with no change.

This is done using a slightly modified markdown template
`templates/markdown.tpl`. This is enabled via

    notedown example.ipynb --reverse

or equally

    ipython nbconvert example.ipynb --to markdown \
                                    --template templates/markdown.tpl

include cell outputs in the markdown output with

    notedown example.ipynb --reverse --with_outputs
implement pandoc attributes and reading inputs.

see issues #5, #3

Now we can read outputs that have been written to markdown, as long as
they use a special syntax. The input / output cells are represented by
two consecutive code blocks, the second of which must have pandoc
attributes containing the classes `.json` and `.output`. i.e. like this:

```{.python .input}
code
```

```{.json .output}
outputs
```

This is enabled by allowing pandoc attributes on code blocks.
create code blocks with filters
tidy
use a single markdown template

Generate code blocks programmatically by putting the filters inside the
writer class and instantiating with a switch to determine output type.
update README. fixes #9
emphasise running notebooks. fixes #8