update regex for code blocks

Move away from consuming any number of blank lines before the code block
to forcing a single blank line or the start of the file.

i.e. code blocks have to be like

```code
x = 1
```

blah blah blah.

and not like
```code
x = 1
```
blah blah blah.

This is consistent with other markdown specs e.g. pandoc.

This required implementing a pre processor for text blocks (like we
already have for code blocks), which is currently only used to strip
excess blank lines from the start and end of the markdown text (which
are left there because of the new code regex).
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
pass extra attributes through notebook. see #3
cli args
wip: attempt to include template as data
package markdown template

Had to do some temp file wrangling to make an exporter with an
absolutely pathed template file.
require all ipython
doc, fix missing attributes
only require ipython, jinja2
implement --to --from cli args
convert un-executed notebooks
remove excess newlines from end of Rmd example
update precode arg to new block format
use a class for knitr