Add new module for dexlib2
Add AbstractListIterator and ImmutableListConverter classes to util module
Add initial set of interfaces for dexlib2

This isn't everything that will be needed, but it's a good start
Add immutable implementations

Immutable implementations for all interfaces defined so far
First commit of DexBacked implementations, for reading an existing dex file.

This is still a work in progress.
Delete some old and/or half-baked javadoc from DexBackedField
Add some missing nullness attributes
Make ReferenceType constants static final, not just static
Make ReferenceType constants all caps
Move ExceptionWithContext to Util module
Move the value type constants from EncodedValue to a new ValueType class
Change ImmutableList.convert to return an empty list rather than null
Make AnnotationEncodedValue implement BaseAnnotation
Add string formatting functionality to ExceptionWithContext
Implement DexBacked encodeded values
Remove the expanded opcode stuff
Change Opcode.getOpcodeByValue to accept an int
Implement reading instructions
Add named offsets for field_id_item values
Add DexBacked implementation of Method