memory reduction: not creating empty annotations
Bugfix: Operations that set a wide result register also produce a result that we need to copy away.

Bugfix: If the first register of a /2addr instruction gets moved, we need not only copy the incoming data to the new register before we invoke the instruction, but we also need to copy the result back.
removed a Java warning
added a function to reduce unnecessary register copies when writing out dex code
updated dexlib
some refactorings