Update & add tests for parts

These tests should all pass with the current master.  In a few cases, that's because the refs are broken to reflect the current state of the code; I've marked these in the README.  So in theory, as the parts code is fixed, these are the tests we can expect to break, and then it should just be a matter of running updateReference.

Plenty more tests to add yet of course.