Redesigned texture state system

It started as my quest to expose BC Facades API, but I was stuck while messing with rendering so I decided to experiment with it and I made such improvements and I present them for code review:

1)Pipes are now ICullable(May need a bit work to represent all the culling functionality from pipe blocks[If this gets accepted create issue "Complete ICullable API" please])
2)Pipes are now have their texture state machine in Block instead of TileEntity Client State. This may reduce memory footprint if I am correct.
3)Due to this vanilla block renderer now can access texture state using getIcon(int, int) instead of using one with WorldAccess to look for TileEntity to get its Client State. So it should be MUCH faster.
4)Texture State object has its own texture array minipool(for one object) which can be switched on and off using popArray()\pushArray() to avoid IIcon[6] allocation for each pass from Facade Renderer.
5)Pluggables now use Fake Block as their state manager for culling and texturing. This will help me to expose pluggable api without enforcing end-users to make their blocks depend on ICullable and ITextureStates from BC.
It might serve as further expansion for the API, but yes - it is not needed right now(after FakeBlock generalization it might not even be needed at all) and can be  exposed later if needed. I will move it out of API