Remove SyncRequest from K::Object and create a new K::Session type

This is a first step at fixing the conceptual insanity that is our
handling of service and IPC calls. For now, interfaces still directly
derived from Session because we don't have the infrastructure to do it
properly. (That is, Processes and scheduling them.)
I copy&pasted the majority of this from from interface.h and kernel, so I dunno if I should. No one will complain (I think the only person that worked on the core stuff is bunnei before) so it's probably fine to change it, yeah.