Optimization: New packet reference counting rules for apps.

The app (and link_ring) transmit and receive functions don't do
reference counting anymore. Apps must determine what impact they have
on refcount (+/-) and call packet.ref() and packet.deref() directly.

Most apps don't affect refcount - the pass packets through from one
port to another - and these don't need to make and ref() or deref()
calls.

For convenience, packet.ref() and packet.deref() now take an optional
'n' parameter specifying the refcount increment/decrement.

Why? ref() and deref() were performance hotspots and this reduces the
number of calls. Apps that don't affect refcount used to call both
ref() and deref() but now they call neither.

app.transmit() is also removed as it is now redundant.

AND (SORRY! JUMBO COMMIT!)

Refactored basic apps and tests out of core.app and into:
apps.basic.basic_apps: Sink, Source, etc apps.
designs.basic.basic: Test of an app network for synthetic traffic.

AND (SOOOOORRY!)

Created scripts/process-markdown with a syntax extension for
README.md.src files:

    DIAGRAM: foo
    ... multi-line ascii-art ...

which uses ditaa (http://ditaa.sourceforge.net/) to create a PNG
image from the ascii art and put an inline image link in the
outpt markdown.

The files are output to README.md and should look pretty on github.