I had planned to work on this some more, but I'm editor of a
journal and have recently agreed to become director of graduate
studies, so there's no time to work on anything I don't use in my
own research. Therefore I'm putting this out there as is.
Basically, it works for me, but you might have to tweak things to
do what you want (it probably won't take much, and you can ask me
if you get stuck on something).
I have no plan to turn this into a Dub package, but that doesn't
stop anyone else from doing so.
It's not ready for release. All functions are documented using
Adam's documentation generator though. And there's some example
code on the project page.