making sure not to place duplicate annotations into a dex file (see #146)
Fixed an infinite recursion in the array type detection. For assignments a=b, b=a in a method, the code would infinitely ping-pong between the two assignments when looking for a's type (a gets b's type, b gets a's type, ...). I changed it to maintain a set of already-visited statements and just move on if a statement has already been processed and to look for another statement from which to get the type.

I also reformatted the code to be closer to Eclipse's default formatting which is way easier to read.
replaced the iterator by a for loop for legibility
bugfix against IOException: may not close the jar output stream after writing of the class; instead the stream is closed in the end, through a call to tearDownJAR()

I wonder how this could ever have worked!?
fix for toDex: gracefully handle situation where an instance method does not have a this-local
performance improvements for large target applications
Merge branch 'develop' of github.com:Sable/soot into develop
code cleanup
removed unnecessary typecasts and improved performance
added type information
replaced a string comparison for performance and type safety reasons
removed some warnings
added some type information, removed some unused variables, avoided computing stuff over and over again
fix for the fix
interning strings to save memory
interned more strings for performance
1) added a more verbose error message if the directory specified for the Android platform JARs does not exist
2) fixed a potential memory leak. The ZIP file for the APK was never closed again
1) added validation code to make sure that no goto instruction jumps directly to itself as this break the toDex component
2) added a check into toDex to detect self-jumps early on and make debugging easier

related to #148