Bullet, add contact callbacks and add GdxCollisionObjectBridge

- Add ContactAddedListener (optimized for ByWrapper, ByObject and ByValue)
- Add ContactProcessedListener (optimized for ByObject and ByValue)
- Add ContactDestroyedListener
- Add ContactCallbackTest

With this all collision detections methods are implemented described on: http://bulletphysics.org/mediawiki-1.5.8/index.php/Collision_Callbacks_and_Triggers.

To avoid having a lot of JNI calls, I added btCollisionObject#get/setContactCallbackFlag and #get/setContactCallbackFilter. Which must match (bitwise) for the ContactAdded/Processed callbacks to be triggered. For this I added a GdxCollisionObjectBridge which is encapsulated and cached in java (in btCollisionObject) to avoid unneeded JNI calls.

I described how and why to use it in the wiki: http://code.google.com/p/libgdx/wiki/PhysicsBullet#Contact_Callbacks

Also added the gdxPooledObject and gdxManagedObject. For pooled object a pool is used for director arguments and a static temp value for method results. For managed objects a LongMap is used to keep track of the native and java instances. Both are used to avoid creating objects (and therefor invoke GC), also minimized reflection from jni.