Implement ability to extend and add custom config

When using the library via Composer, it's not ideal to be editing /
adding files in the library directory.

These changes allow developers to override and extend the library
functionality and configuration with their own without modifying
anything in the library directory
Remove switch template

This should have been renamed by the previous commit (rename avoids
keyword collision)