Nicer api for setting contracts

I don't like much the look of the way to set the contracts in Contract subclasses : 

```ruby
class FooContracts < Contracts
  def self.contracts
    ['save', 'get', 'list']
  end

  #methods
end
```

I suggest replacing it with : 

```ruby
class FooContracts < Contracts
  contracts :save, :get, :list

  #methods
end
```

All tests are passing, and I updated the sample application accordingly : https://github.com/gabriel-dehan/obvious_status/tree/feature/nicer-api-for-contracts (if this pull request is accepted, you might want me to make a pull request for obvious_status as well)

Cheers :)