More generic "spinner" using the new "cycle_through" and faster tests

As I'm digging into the code I keep running the tests frequently and they were lasting at least 20 seconds to run.
I just cut some fat and now they run in ~6 seconds.

The other thing of this pull request is to make the spinner methods more generic.

Now to create your custom spinner you just have to 
```ruby
class SpinningCursor::Cursor
    def snake(delay = 1)
      sprints = [ '_--_', '--__', '-__-', '__--' ]
      cycle_through sprints, delay
    end
end

SpinningCursor.start do
  banner "An amazing task is happening"
  type :snake
  delay 0.2
  action do 
    sleep 5
  end
  message "Huh?! I'm awake!"
end
```