SHA1

Don't merge until these things are done:
* [x] Code style, change `$` to `0x`
* [x] Clear allocated memory and remove .block statements
* [x] Get it actually working
* [x] Push unit tests
* [x] Make externally-exposed routines preserve registers
* [x] Code style, document all exposed routines
* [x] Implement `sha1AddRange`
* [x] Better document the structure of the SHA1 state memory