Tweak the syntax for the .array-data structure

Now each number is an individual element, instead of the weird
"re-interpret numbers as bytes, concatenate, and then re-interpret
as numbers based on element width" thing that was going on before

Also, only element widths 1, 2, 4 and 8 are allowed
Fix issue with .param directive when there are parameters of type D
Fix issue with empty superclass when dumping a Ljava/lang/Object; class
Fix implementation of equals for BaseTypeReference

This fixes the implementation so it matches what is described in the
documentation for the TypeReference interface. Specifically, it allows
for comparison to a CharSequence
Tweak how hashCode and equals works for MethodReferences

This fixes an issue where method references weren't being properly
interned when generating a dex file
Fix issue with interning proto_id_items while writing dex file