Added model bake event, ISmartBlock/itemModel, Block.getExtendedState, IExtendedState and IUnlistedProperty

ModelBakeEvent allows mods to insert custom baked models, much like TextureStitchEvent allows to insert custom textures.
ISmartBlock/ItemModel allows model to get the block/item state for rendering.
IExtendedState allows to use properties that shouldn't be enumerated (IUnlistedProperty).
Example implements this: http://imgur.com/a/FyyJX
![example screenshot](http://i.imgur.com/sjZY6gu.png)
Isn't here a p_178089_1_.getItem().getExtendedState(...) missing? Otherwise how to draw the item variants for these blocks correclty?