Fix Issue 12462 - Use D2's new-style operator overloading.

https://issues.dlang.org/show_bug.cgi?id=12462

I actually think some of these should be const where they are not. I did accidentally remove a const in one place but compilation still worked (which shows the lack of more thorough testing in this module).