Continuously upload measurements

Using named pipes, the upload application now connects as a client to
the intercept application that hosts a named pipe server.  All
measurements are transferred from the intercept server to the upload
client which are then uploaded to the measurement Azure service.

This means that the basic functionality of the upload application is
complete.

There are several issues with this commit, and should be considered work
in progress.

1. Code duplication

The FileUpload class has duplicate code for the HTTP POST part.

2. Serialization

The measurements are serialized using class BinaryFormatter, which
is probably the worst of all possible options.

3. Memory

The intercept application will keep all measurements in memory.
Instead, they should be purged after a certain time interval.

4. Tests

There are no tests at all for this functionality.

There are probably more issues, like general code quality and layout.
Configurable pipe name for client

Class FileUpload that acts as a named pipe client, now has a
configurable pipe name.  This is useful for unit testing since it means
that we can run tests while the real intercept application is running in
the background (using the default pipe name.)
Intercept pipe server disconnect

The intercept pipe server will disconnect clients when the measurements
stream is complete. The client will handle a disconnecting server.
Refactor FileUpload

Removed code duplication from FileUpload regarding the Web Api client
code.
Code cleanup

Cleaner code and better messages in the upload application.
Add tests

Added tests for verifying that the actual measurements uploaded are
correct.
Add failing test for startup

Added a failing test for the startup scenario.