Cleanup and rework physical interaction events. Fixes BUKKIT-3686

Currently when dealing with physical interactions with pressure plates
and tripwires we immediately block their activation as soon as a single
entity involved has their event cancelled. We also fire events whenever
an entity intersects the block a wooden button is in even if they aren't
actually pressing it. To correct this we move the button interaction to
the correct place and modify all three to only block the activation if
every entity is blocked from using them instead of just one of them.
ANSI color codes now reset text attributes. Fixes BUKKIT-3508

The client resets all formatting after a color code is received, but currently the ANSI codes do not, and so the console does not accurately reflect the appearance of the formatted text. Instead, the ANSI color codes are now set to reset all text attributes.
Merge branch 'master' of git://github.com/Bukkit/CraftBukkit-Bleeding into inventoryFix
Fix tests and add new ones

- addItemSplit() can, for now, be only used from CraftInventory - we
need changes to Bukkit to make this work with any inventory
- add a test testing for argument overwriting
- add a test testing adding items to small inventories
Fix addItem/addItemSplit methods

- Removed magic numbers
- Moved while loop breaking block - now it's its breaking statement
- Added documentation for addItem/addItemSplit to make it clear what
each one does
-
Clean the code

- Add spaces separating blocks of code
- Refactor imports, making them more readable