Restructure weberver tests.

Separate output tests into a separate file to keem things manageable as
more tests are added.

Also rename files to match package name.
Refactor how json responses are parsed in tests.

Use a map[string]interface{} type instead of a custom struct for each
type.  This saves having lots of duplicated types in the tests.

This refactoring also picked up an error in the JSON output - the
tagging on the fields of the struct wasn't correct, so the fields in the
generated JSON were CamelCased.  The tests weren't picking this up
because they had the same problem.
Add virtual output implementation.

This implements the Output interface, and simply maintains state in an
internal variable.  It doesn't interact with any actualy output system
in any way.  This is useful in tests, and could be used in a polling-type
output implementation.
Switch timer tests to use virtual output.

This is simpler and less brittle than using the mock approach
Refactor most webserver tests to use virtual output.
Merge remote-tracking branch 'origin/virtual_output'
Initial martini integration
Simplify output actions

Use martini's functions to do the URI parsing, routing etc.
Use martini handler to find output.

This reduces the duplication of code somewhat.
Update output to use new gpio error handling interface
Add initial html page, and static serving.
Set Go version to 1.3.1

creates a .go-version file for tools like goenv and gvm, also update the
version for Travis.
Specify gpio pin via commandline
Add Id() method to Timer.

Needed as key in API.
First parts of timer API.

Returns minimal (just id) timer details for show action
Add Controller type to hold all the timers and outputs.

This will allow the webserver to simply be an adapter for the internal
interfaces that the Controller will expose.
Add OutputActive method to Timer.

To return the timer's current output state.
Return output state in Timer API request.
Timer index action.