Adds first version of serial port data writer

Uses the Pi4J library. When we create the writer, we also create a
reader to echo out any messages written. This is used as a check that data
is written correctly to the serial port.

In the balloon controller code, we try and create a serial port writer. If
that fails (errors thrown from the constructor), we fall back to using
HTTP. This code is looking a bit messy now, so in the next commit I'll look
and pulling out the writer and sensor creation in a better way.
Refactors the balloon controller so we inject in its sensors and data writers

This makes the code more testable - we can mock the dependencies during
testing. This also separates out the increasingly
complicated code which is used to initialise our writers and sensor
controllers. In the future we might want to break these things out into
a separate factory class. For now we're just using factory methods.
Updates the FileDataWriter so we can unit test it without creating a file

Allows us to use mocks within our unit tests. If we do want to add tests
where we test a file is created, we can pass in a real file appender
instead.
Adds unit tests for SerialDataWriter
Pulls out balloon controller creation into factory class

This helps to keep the balloon controller class focused on the logic of
running the balloon. The factory takes over the job of pulling in
dependencies and creating a balloon controller from them. The factory class
makes the call on which concrete types of sensor and writer to use.
Merge branch 'master' into features/radio-tx

Conflicts:
	project.latex.balloon/nbproject/project.properties
	project.latex.balloon/src/project/latex/balloon/BalloonController.java
	project.latex.balloon/test/project/latex/balloon/BalloonControllerTest.java
Drops the baud rate of the serial data writer

For now, I've dropped it to the same rate as we use for the GPS module. We
may need to drop it further - I'll take Will's advice on that. I've
pulled the rate into a property rather than using a hard-coded value, this
makes our test less brittle.
Merge branch 'features/radio-tx'