throw away old state model
change NetworkMessage to Message
remove threephase; it's a broken algorithm :(
Merge branch 'master' into newstate
holocaust
Merge branch 'master' of github.com:Siacoin/Sia into newstate
halfway, this should be merged with a different commit
separate short tests from long tests, remove 'bench' and 'test-verbose'
Add simple tick function, along with 2 tests
Added an algorithmic paper to the doc folder
First steps for consensus algorithm
convert hardcoded variables to constants
added functions Sign() and Verify()
clean makefile
test and document new crypto functions
deleted unused common functions
Progress on byzantine generals code

None of the networking is implemented, and we have an incomplete way of
detecting if hosts have sent a particular heartbeat before - we don't
actually store multiples.

Also the testing and documentation are incomplete
Cryptography Typing Overhaul

Changed it so that all major crypto types are byte arrays of an explicit
size. This adds a level of security in that the byte arrays are
guaranteed to be the right size, but it also makes some forms of copying
and concatenating easier.

Most of all, the fact that everything is now typed should reduce
confusion and make it easier to change things in the future.
added 'fmt' to 'libraries'
Fix empty message runtime panics

Anytime an empty message was offered for signing, the cgo translation
would point to the first element of an empty slice and cause a runtime
panic. I added some code to prevent this.

I also cleaned up the functions a bit. It's still not pretty but perhaps
easier to understand what is happening.