Added getValidRotations and rotateBlock support

Since I was familiar with getting blocks to rotate with Archimedes' Ships from my work on BiblioCraft, I figured I would help out here with carpenters blocks.

Overriding these 2 methods in the block class allows other mods to rotate carpenters blocks via vanilla methods. A prime example would be Archimedes' Ships, which uses these methods to rotate blocks when the ships rotate, which is the main motivator for me adding this. 

I added support to the slopes, stairs, ladders, doors, safes, hatches and gates. I compiled out and tested on a server and just a client with the Archimedes' Ships mod and they all seem to rotate correctly with the ships now. The only other 2 blocks I think that could possibly use this treatment are the bed and the garage door. 

Each block had to be implemented a little differently due to the variation (lack of consistency) in ways available to rotate / change facing / direction of the blocks. It seems to work good though the way I implemented it, so its all good.