Added more methods to blockchain.go

Restructured blockchain a little bit to help with common methods
Added tests for most of the errors