Various ItemMeta fixes.

Fixes BUKKIT-3408, BUKKIT-3190, BUKKIT-3191, BUKKIT-3407

These changes relate mostly to semantical changes for serialization
contract, exception of changing the map scaling value from byte to boolean,
what it should have been in the first place. Appropriate unit tests were
added for CraftMapMeta, as they were missing.
Spawn monsters without prematurely exiting. Fixes BUKKIT-3425

By using return 0, we exit the loop prematurely preventing other
creature types from being spawned if one type is set to 0. By using
continue we move on to the other types and allow them to spawn
properly.
Add ItemStackMapTest

This test was missing from c056293b38cb9a1296937d91746b175252be044a
Throw BlockPlaceEvent when placing double slabs. Fixes BUKKIT-2469
Handle beds and doors the same way as other blocks. Fixes BUKKIT-3437
Relates to: BUKKIT-3438
Get the BlockState before changing the block. Fixes BUKKIT-3441
Fix entities traveling sideways. Addresses BUKKIT-3443

Original: Update mappings to correct 1.4.6 version.
Initialize entity data before spawning them. Fixes BUKKIT-3209

Vanilla does the initialize before spawning everywhere except in the
SpawnerCreature, our spawn event depends on this behavior to be
consistent.
Update CraftBukkit to Minecraft 1.4.7
Updated version to 1.4.7-R0.1 in pom.xml for Beta.
Updated version to 1.4.7-R0.2-SNAPSHOT for development towards next release.
Place beds with the correct data. Fixes BUKKIT-3447
Always call PotionSplashEvent. Fixes BUKKIT-3363

This change allows plugins to add recipients to a PotionSplashEvent
when it would have otherwise had none.
Improve the item meta deserialization code-style

Fixed the ItemMetaFireworkTest

Add set power unit tests for FireworkMeta
Add BlockEnderPortal for diff visibility
[Bleeding] Add experimental support for entity portal traveling
Fix broken null contract with Jukebox.setPlaying, Fixes BUKKIT-3429

The javadocs state that a null may be used to remove the currently
playing sound, however this causes a NullPointerException.

It also doesn't process registering the record correctly, along with
processing non-valid items.
Refactor processBlockPlace logic. Fixes BUKKIT-3406 and BUKKIT-3454

The previous logic was faulty since it lost the logic of "placing" the
block. It was also taking into account data that could have been
changed outside of the processing of this event, which is irrelevant
to the processing of this event.