Split API classes and interfaces

Split previous API files into many more classes and interfaces. Manager and Server APIs were left as-is.

It may be helpful to create a class hierarchy/diagram.
I would probably suggest calling this getResponseDocument() — it's more descriptive as to what it does. Right now, it could be interpreted as some pre-processed response.