Move Controller tests into Controllers/ directory
Introduce UserVoteController

Fetches votes for a given user.
Refactor /user/{x}/vote/{x}/

Reuses the result from /user/{x}/vote/ to avoid repeating the userExists
code.

Adds a test that the output error message is the expected message, when
a 404 occurs.

Also removed a stray ref to System.Net.Http.Formatting (again), as we
have 2 references to the lib. One to 5.2.0.0, one to 5.2.2.0.
Hooks up the UserVote route

Adds the path the the UserVoteController to our web config, to allow
API calls to be made through the URI.
Introduce WebApiController

Creates a common base-class which handles the constructors, and marks
all API methods as "405 MethodNotAllowed"

This is primarily for testing, but also to consolidate the constructors
Test PUT, POST and DELETE not allowed

Adds tests to all current controllers that PUT, POST and DELETE return
"405 MethodNotAllowed".

Also updates UserVoteController to use the WebApiController.
Allow POST to /api/user

Allows a new user to be POSTed and inserted into the database, so long
as it is unique.
Explicitly disallow POST and POST by id

Previously we were not passing in an argument, or only passing in an id
however we have not implemented POST in this way. We now change the
MethodNotAllowed to catch these attempts in the same way as our API.
Swap PUT and POST for /api/user

The main difference here is that a PUT of an existing user will return
the existing user ID, rather than raising an error.

This should make logging in much easier.
PUT votes for users

Hooks up the PUT to allow voting, and makes the GET fetch the User +
Option types when a vote is requested.
Replace vote with PUT

Sending two PUT requests now has the same effect as sending one.
Hook up front-end for voting

Adds a login and voting buttons for the options.
Submit name on return

Entering a name followed by the return key now submits the name
Group API and Web Controllers

Organises our big Controller/ pool into Web and Api types
Add results page

Adds a summary of all the current votes, grouped by option.
Graph it up!

Imports InsightJS and uses it to visually show the voting results.
RowSeries shows an ordered list of results, with names of voters on the
tooltip.
Tweaks to results layout

- Makes the result chart take up more of the page
- Removes the results table
- Casting a vote now redirects to the results page (after 0.5s)
  - The delay gives the user some feedback that their vote has been
    received before moving on
- Highlight the last thing the user voted for when they try to cast a
  new vote.
Fix AppVeyor again

Tries to restore packages in Data
Merge branch 'develop' of https://github.com/tpkelly/voting-application into develop