Updated stubs for non-Windows support

I've made a significant amount of changes to the UI "stubs" to update non-Windows support for simulating protocols. The stubs have been broken for a little. This update fixes them and adds:

- Support for defining a custom simulation function. A simulation function is a function you write to simulate an experimental subject while testing your protocols. The default simulation function simply returns all stimuli as responses (a loopback) or simulates noise if no stimuli is defined for a particular channel.

- Support for simulating indefinite epochs.

- Support for simulating the controller's ReceivedInputData event (for plotting and analyzing data as it's recorded).