Add missing documentation.
Create iterators for input and output streams.
Make trials printable.
Support custom formatting of time points.
Allow '-' to mean both STDIN and STDOUT.
Make buffer access more array-like.
Discern empty from unset Bro log values.
Fix bug in floating-point printing.
Add the dual to event import: export.

VAST receives events from a variety of different sources as well as
(re)generates when queried. Previously we had an ingestion component that dealt
with ingestion, and a CLI for interactive extraction. Now we have a strong
dualtity between receiving and generating event. To underline it, we renamed
the ingestor to importer and provided an exporter performing the exact
opposite.

The exporter currently supports Bro and JSON output formats. Conceptually, an
exporter countains multiple sinks of various types, and can forwards all events
to all registered sources. For the command line application, though, we limit
the exporter to use exactly one sink as specified.

Here is an example how this new concept integrates with command line querying:

        vast -E -o json -l 100 -q 'ts < now'

The -E flag tells VAST to launch the exporter (the dual to -I). The flag -o
specifies the sink type and defaults to 'json', only 'bro' is currently
supported in addition, but the API makes it easy to implement new sinks. The
flag -l limits terminates the exporter after a maximum number of events. The
exporter may also terminate if the query exhausts before, i.e., the result set
is small than the given limit. Finally, the flag -q specifies the query string.

By default, -w - is implicit, i.e., the exporter writes to standard output. One
can also specify a file system path. For the JSON sink, the path means a file
where to write the output to. For the Bro sink, the argument to -w must be a
directory (or non-existant path) where to store the logs in, because unlike
JSON, Bro log entries have an implicit schema.

Other changes along with this commit:

  - Fix bug of non-executing sync_senc handler occuring in
    vast::program::make_behavior. One cannot use sync_send(..).then(..) in
    make_behavior, because it returns and installs a new behavior overriding
    the one-shot sync_send handler.

  - Assume reading from standard input by default when importing logs, i.e.,
    the configuration now implicitly sets -r -.

  - Outsource query batch size specification completely to the client.
    Previously SEARCH stored this parameter.

  - If one tells a query to extract 0 events, it will dump everything.
    Previously this violated an assertion.

  - Factor source implementation into separate files.

  - New command line shortcut -p for --import.partition to specify the
    partition name during import.

Closes #45.
Closes #48.