Review

The first half of a very large code review.

Encoding has moved from Gob to Siaencoding. Siaencoding currently uses JSON but must be kept general so that other options can be painlessly considered in the future.

A few data structures have been cleaned up quite a bit. A few functions have been cleaned up quite a bit. The snapshots and blocks have been largely refactored into a system that makes a lot more sense. More extensive testing has been written for the files and functions that have been refactored. Many bugs have been fixed.

Most things are broken at this point, but the codebase is well on its way to being of substantially higher quality.