This cleans up this header and moves the functionality into more
useful places while reducing the include complexity but only pulling
in whats required.
This is the initial part of a series which splits up the API interface
definitions for the frontends removing a great deal of unnecessary file
inclusion and further isolates the fronted API usage from the core