Ticket #41: implement lazy decoding.

Per original plan, Struct now lazily decodes fields. On PyPy 2.4.0 x4,
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.