Add files from ResidualVM
Start trimming out unnecessary backend stuff.
Created initialization functions, so we can avoid exposing backends.