Reorganized tests

I split up the monolithic library_test.go into multiple test files, one per block. Some of these even have more than one test function, woohoo! You can find the tests in the top-level tests/ directory. Shared functionality for these tests should go in test_utils/util.go.