To write tests for the parsing of Kwid, I am inventing a Kwid /bytecode/. The
bytecode is the result of a parsed Kwid stream. This bytecode is easy to write
and understand, and contains all the semantics of the Kwid stream from which
it was created.

Here is an example of a Kwid stream and its bytecode (separated by "...\\n"):

    == A sample test

    This is a paragraph of /text/,
    with *bold* and code: {`$a = $b`}.

    Here is a list:
    * Check out http://perl.org.
    * [The Perl Site|http://perl.org] is cool.
    * Refer to [text|page/section] for more info.
    ...
    >H2
    =A sample test
    <H

    >P
    =This is a paragraph of 
    >i
    =text
    <i
    =, with 
    >b
    =bold
    <b
    = and code: 
    >c
    =$a = $b
    <c
    =.
    <P

    >P
    =Here is a list:
    <P

    >L*
    >I
    =Check out 
    >h
    -http://perl.org
    -http://perl.org
    <h
    =.
    <I

    >I
    >h
    -The Perl Site
    -http://perl.org
    <h
    = is cool.
    <I

    >I
    =Refer to 
    >l
    -text
    -page
    -section
    <l
    = for more info.
    <I
    <L

* Each line represents an event or perhaps part of an event.
* The first character tells the kind of event:

    > - a starting event
    < - an ending event
    = - a chunk of normalized text
    - - an entry in a list of event components

* The second character of a starting or ending event is the /type/ of event:

    -- Block Types
    H - Heading
    P - Paragraph
    V - Verbatim
    C - Comment
    L - List
    I - Item
    . - Formatted

    -- Phrase Types
    b - bold
    i - italic
    c - code
    h - hyperlink
    l - link

All the remaining information on a line is the content of that event.
