Fix #9: Feature/enhanced voting

This should be voting done to a greater/lesser extent. It is progressively enhanced so the buttons will do a postback to the vote controller if Javascript is not enabled and the Javascript will take control over submission

The information that we store is:

* SessionId (maybe we should have called them talks... )
* CookieID (a guid associated with the cookies used to store the user's votes)
* Time Recorded
* WebSessionId
* UserId (if they are logged in)
* IPAddress
* User Agent
* Referrer
* Screen Resolution (at the moment just from the javascript)

The controller is mostly tested, the return values aren't tested but what is saved to the database is.