Documentation update

Update documentation
Code refactoring

Add comments in unit tests
Work on getheaders to get this blockchain synchronization working (not yet complete)