Extract tasks from Rakefile

I think this makes it easier to understand the project's tasks. Also, there was a fair bit of cruft in the spec tasks. Is everyone ok with changing `rake spec:shoes` to `rake spec:dsl` for consistency's sake? I did leave `rake spec:shoes` in there as well, but it's not documented in the task list.