Multi backends

Adds the ability to support multiple backends in a single configuration. This is based off my commit for #8 rather than master since that is the primary reason for including support for multiple backends.