Added call to LightningStrikeEvent.
Handle target blocks gracefully (fixes #172).

Sometimes, player.getTargetBlock() throws an IllegalStateException. This
is usually the case if players stand at height 127 and look up when
left-clicking. The exception can be safely caught and treated as an
invalid block (air in this case).
Added block placement handling for buttons (see #119).

Moved setAttachable() for Buttons and Levers to BlockAttachable.
Added block placement handling for beds (see #119).

Handling of breaking beds not yet implemented.
Implement container blocks dropping their contents.

Fixes containers losing their contents and dropping incorrect blocks when
broken.
Handle status packets asynchronously.