Refactor plugin

* Use better and more consitent variable names
* Extract local functions to simplify logic
* Make non-public functions local
* Add rake task for running tests
This is definitely clearer. I'd still prefer to see each of the branches named with an explicit condition, and possible flattened. Here's what I'm thinking:

``` vim
" promote s:default_cmd to be script level, declared at the top, as it is essentially a constant
let s:default_rspec_cmd = "rspec {spec}"

...

function! s:Command()
  if s:RspecCommandProvided() && s:IsGui()
    let l:cmd = s:GuiCommand(g:rspec_command)
  elseif s:RspecCommandProvided()
    let l:cmd = g:rspec_command
  elseif s:IsGui()
    let l:cmd = s:GuiCommand(s:default_rspec_cmd)
  else
    let l:cmd = s:DefaultTerminalCommand()
  endif

  return l:cmd
endfunction

function! s:RspecCommandProvided()
  return exists("g:rspec_command")
endfunction

function! s:DefaultTerminalCommand()
  return "!" . s:ClearCommand() . " && echo " . s:default_rspec_cmd . " && " .  s:default_rspec_cmd
endfunction
```