Merge pull request #133 from lukechampine/scripting

Bytecode scripting
switch to relative storage
preliminary snapshot saving
move snapshot functions to snapshot.go
keep a counter of how many nodes are in the walletTree
add support for fetchin a quorum snapshot
start implementation for fetching snap wallets
add siaencoding package
add block.go for saving, loading, and manipulating block
begin snapshot implementation
new encoding scheme for heartbeats
move WalletId to its own file
add malice-safe decoding of heartbeats
bugfixes in heartbeat encoding and integer encoding
add manual encoding for block struct
implement GobDecode for block
implement SaveBlock
more thorough testing of heartbeat encoding
add TestBlockHistoryHeaderEncoding
test block decoding, fix a handful of bugs