Updated the scripting library to include a debugging context.

On initialisation this context will take a copy of the current system and then all functions will be made to "fake" devices, and system. This should result in the testability of macros for the CLI and UI

Also updated the tests to include the volume functions, and they are now using the new Debug Context, so it's stops screwing with my System :P