Well done. I haven't had a chance to do more than glance at the README, but it looks quite complete and useful.