* New database table to store headers
* Loading blockchain only loads headers into memory instead of header blocks (header + proofs), speeds up the startup, and reduces normal operation memory usage by 80%
* Fix deadlock issues with store class
* Make memory store access synchronous, to reduce use of locks, this improves performance of block and unfinished block processing
* Remove locks from reads of DB, only lock for writes
* Cleaner configuration system with argparse
* Log to file by default, configurable to stdout
* Proof of space binary and create_plots scripts allow passing in temp and final directories
* Switches to sqlite and remove all mongo stuff
* Starts RPC server on port 8555
* UI is in new process, communicates to node through rpc
* JSON serialization for streamables
* Harvester periodically prints its plot names and sizes
* Process names are set to chia_full node, chia_harvester, etc
* CONTRIBUTING.md, and remove docs from git (put in wiki)
* Adds the SmallHeaderBlock type, it's header block without the PoT and PoSpace
* Fix harvester bug (allows two harvesters in the same machine)
Remove database access from blockchain, and handle headers instead of blocks
Avoid processing blocks and unfinished blocks that we have already seen.
Also adds test for load.
Plotting improvements
* Added a new API call GetAllHeaderHashes which returns just the header hashes. This is used for finding fork point.
* Only downloads headers and blocks from fork point
* Remove CancelledError logging
* Short sync should now work properly, it will always ask for previous block. There might be some repeated requests.
* Introducer now only returns peers which it has seen recently, and full node only connects to peers which it has heard from recently.