Ticket #41: beginnings of structlib
Standard headers.
Ticket #41: implement field coders.
Ticket #41: FixedPackedFieldCoder can specialize read_value() too.
Ticket #41: basic structlib working for bool fields.
Ticket #41: emulate remainder of struct interface.
Add link to various old posts
Fix links.
Simplify text
Ticket #41: fix array handling
Issue #41: replace StringIO with direct access

5x faster on CPython, PyPy for some toy examples.
Issue #41: remove unused skip().
Ticket #41: implement lazy decoding.

Per original plan, Struct now lazily decodes fields. On PyPy 2.4.0 x64,
instantiating a struct is almost free:

    1000000000 loops, best of 3: 0.00101 usec per loop

With a slightly more complex example:

    stype = s.StructType()
    stype.add_field('dave', 1, 'bool', False)
    stype.add_field('dave2', 2, 'varint', True)
    stype.add_field('host', 3, 'inet4', False)
    stype.add_field('host6', 4, 'inet6', False)
    stype.add_field('host6port', 5, 'inet6port', False)
    stype.add_field('text', 6, 'bytes', False)
    stype.add_field('flue', 7, 'bool', False)
    stype.add_field('name', 8, 'bytes', False)

    st = s.Struct(stype)
    st['dave'] = True
    st['dave2'] = [1, 2, 3, 4, 5]
    st['host'] = '255.0.255.0'
    st['text'] = open('/etc/passwd').read()
    st['flue'] = True
    st['name'] = 'david wilson'
    print [len(st.to_raw()), st.to_raw()]

Decoding the 12 byte name field, which is the 6th field in the 2kb
buffer and appearing last, requires:

    1000000 loops, best of 3: 0.469 usec per loop

Or about 2.1 million rows/sec, assuming we only wanted that field.
Ticket #41: inline read_key() call for read_value().

1000000 loops, best of 3: 0.44 usec per loop
Ticket #41: precalculate varint to avoid some shift/masking.

1000000 loops, best of 3: 0.435 usec per loop
Issue #41: repr/dict interface fixes
Ticket #41: add UuidField, more dict interface fixes.
Ticket #41: specialize encode for PyPy

Before:
    100000 loops, best of 3: 3.88 usec per loop

After:
    100000 loops, best of 3: 2.27 usec per loop
Ticket #41: more dict interface fixes.
Ticket #41: unroll write_varint()

PyPy 2.4.0 before:
    1000000 loops, best of 3: 2.18 usec per loop

PyPy 2.4.0 after:
    1000000 loops, best of 3: 0.893 usec per loop