[B] Add API for snow layer blocks. Addresses BUKKIT-5421

Currently there is no way to get/set the various heights of a snow layer
block. This commit allows plugin authors to get and set the height of 
snow layer blocks.

### The Issue:

Presently, there is no API for manipulating height for snow layer blocks. This PR adds relevant API for controlling/viewing the height of a snow layer block.

### Justification for this PR:

It would be nice if bukkit plugin developers had access to the ability to manipulate snow layer block height. Such use could have interesting effects when creating a custom generator involving snow layer blocks at differing heights.

### PR breakdown:

This PR adds a material data class designed for snow layer blocks along with an enum for describing snow layer height. These are used for modifying snow height by data value manipulation.

### Testing results and materials:

I tested this out by creating a plugin that grabs a block's MaterialData, check if it is an instance of snow layer, then casts to that if so. I accept input on a data value from 0-7 indicating the data value for the snow layer height. /snow [height data value] is the only command implemented. Using /snow without arguments shows the height of the snow layer, and providing input as /snow 0-7 sets the height of the snow layer block. /snow addlayer and /snow removelayer will add to, or remove from, the current layer of the snow layer block, respectively. If the value is not a number, or is outside the range of the available snow layer data values, an error is given.

Source: http://pastebin.com/wGZneQ1S
Binary: https://dl.dropboxusercontent.com/u/13099063/TestPlugin.jar

### JIRA ticket

https://bukkit.atlassian.net/browse/BUKKIT-5421

This should be a `Validate` call instead. Also why does this accept an `int` and the getter returns a `byte`? Shouldn't they be consistent?