Symphony configuration revamp

What this proposal enables from a user's perspective:

- Creating simulation algorithms by sub-classing the Simulation class (see LoopbackSimulation for example). [This was previously implemented but not well exposed].

- Easily switching between simulation algorithms via a personal symphonyrc function.

- Easily switching between file formats via a personal symphonyrc function.

What this proposal requires from a user's perspective:

- Using a symphonyrc function instead of a symconfig script.


What this proposal enables from a development perspective:

- A move toward more unit testable code.

- A simple system for extracting portions of Symphony-UI that the group decides should be lab customizable.