Fixed clang warning about binding to temporary
Fixed orientation data on buildings - Fix provided by Dead1ock
Was calling objects.erase(iter) while iter == objects.end(), this is an invalid iterator for erasure and was causing an exception to be thrown during the collision check, leaving objects in an unknown state of awareness.

Further simplified the logic of this function.
Merge pull request #586 from apathyboy/more_backports

More backports
OnCollisionEnter and OnCollisionLeave are now called automatically from the Add/Remove collided object methods
Updated with more efficient looping through the new/old collided objects lists (contributed by rcythr)

Also moved calls to OnEnter/OnLeave to the Add/Remove collided objects so they don't have to be explicitly called after adding.
Merge pull request #587 from apathyboy/collision_check_fix

Collision detection fix