Merged in code from pranav's original project

Merged in improvements from the original code.
Split out some functionality (eg. backend.go)
Added a dummy loadbalancing scenario
Making the backend node messages easier to read.
Adding load balancing scenario
Adding failure scenarios
Sending a Content-Type header from a backend node
Created NodeSlice to allow new functions

The NodeSlice type has two functions Enable and Disable.
These should be used to configure the backend availability during
testing.
Changed the type for NodeSlice to pass by ref
Fixing the message in the offline page
Adding sleep periods to improve reliable results

load balancers need several seconds to realise the backend nodes are
unavailable; during this time we can't run a test and ensure it's
accurate.