Update .rvmrc to .ruby-version to avoid warning

The older .rvmrc file has security issues and is deprecated in favor
of .ruby-version.  When switching to this project's directory, RVM
issues this warning:

    You are using '.rvmrc', it requires trusting, it is slower and it
    is not compatible with other ruby managers, you can switch to
    '.ruby-version' using 'rvm rvmrc to [.]ruby-version' or ignore
    this warnings with 'rvm rvmrc warning ignore
    /Users/marcel/Pictures/sensa/sensa-server/.rvmrc', '.rvmrc' will
    continue to be the default project file in RVM 1 and RVM 2, to
    ignore the warning for all files run 'rvm rvmrc warning ignore
    all.rvmrcs'.

Switch to the new, more secure way of specifying a ruby verison.
Capture dosing exceptions in the logs for diagnostic purposes

Currently, if an error occurs while dosing, it will typically be in
another thread, where the message and stack trace will not be captured.

Handle exceptions in the background threads by logging exceptions so
that issues can be diagnosed.
Add failed state and switch fto separate state column

We need to add a state: failed.  This allows us to show the user when a
dose has failed rather than only logging it to the application log file.

Alter the doses table to store the state and finished timestamp
separately rather than one timestamp per ending state, so that we don't
have three ending state timestamps.  Update these new columns with
timestamp and failed state when handling a dosing error.
Order doses so recent ones appear first

Newly created Doses currently get added at the bottom, but that's a bit
disorienting because they are below the fold.

Add them to the top of the list instead by reversing the sort order
of the doses.  Add a spec for this, and tolerate a few warts in the
controller setup for now to avoid errors:

* setting @controller explicitly
* rendering views
Stop initializing pump in controller constructor

In controller specs, I can't seem to stub SimpleSerialPort.new soon
enough: the before(:each) callback runs *after* the controller under
test is created.  As a result, creating the pump raises an error about
the serial port not being present.  The test somehow passes anyway,
but it breaks the final initialization steps of the example which set
@controller and setup view stubbing details.  The result is these errors
unless I add some work-arounds to the spec:

    @controller is nil: make sure you set it in your test's setup
    method.

and:

    NoMethodError: undefined method `original_path_set' for
    nil:NilClass

Create the pump lazily in a private attribute reader of the controller
and clean up the work-arounds in the spec.  We don't even need to mock
the SimpleSerialPort because it won't be used in this example.