Banners

API changes to for Banners in 1.8.

The major classes:
- BannerPattern: This is a combination of *all* the patterns on the banner. Each pattern type has a related color. It returns a Map of Type to Color, where the iteration order is dependable (it iterates from the bottom layer tothe top, as expected.
- block.Banner: The BlockState for the banner, which has the base color (a dye color), and a pattern (as above).
- material.Banner: The *blocks* MaterialData, which is the rotation of the block. This should really be merged with Sign, as they use the same values, but I can't be assed :P
- meta.BannerMeta: The ItemMeta for the item. This is the values stored in the BlockEntityTag - see GlowstoneMC/Glowstone#326 for how this could be generified for all blocks.
Name suggestion: `TOP_HALF`