Huge interface removals and additions

This is a major update. There are so many changes that,if you care, you
should just re-read all of the public header files.