Add Bundler setup to Rakefile

So that you don't have to 'bundle exec rake'
Refactor Task#overdue?
Fix typo
Add Task#do! and Task#undo

I also fixed a very sneaky bug with the calculation of the @done field - Nil Guards and booleans don't fit well together.

Basically, if @done was false, then it got re-calculated at every access.

The problem was invisible, but it becomes visible as soon as you admit changing @done along the way, as this commit does.

I changed the code to something less elegant, but working.
Add Task#toggle
Fix unsafe source declaration in Gemfile
Manage due/completion dates when you change the state of a task
Add Task#to_s
Reset original priority when undoing a task

This required some changes to the way the class works.

The lazy field calculations are gone - now the state is calculated eagerly, so that it's easier to switch back to the original date and priority later.
Refactoring: replace accessor methods with attr_reader
Refactoring: minor cleanup

I removed redundant tests and changed minor stuff here and there
Merge pull request #2 from nusco/master

Mark tasks as done/undone