- added some documentation to the code (we're still a long way from a fully documented code)
- refactored all references to be under reference/
- initial support for self_ref and len_ref, which makes the following possible:

    class StringWithLen(Buffer):
            f_int = int_field(where=bytes_ref[0:4], set_before_pack=len_ref(self_ref.f_str))
            f_str = str_field(where=bytes_ref[4:4 + f_int])