Adds first party general caveat verification

This allows verifying with a Proc object, like so:

```ruby
# verify general
general_caveat_verifier = Proc.new do |predicate|
  predicate == 'caveat_1'
end

m = Macaroon.new('http://localmed.com', '456', '123')
m.add_first_party_caveat('caveat_1')
v = Macaroon::Verifier.new()
v.satisfy_general(general_caveat_verifier)
v.verify(macaroon: m, key: '123')
=> true

# verify general fail
m = Macaroon.new('http://localmed.com', '456', '123')
m.add_first_party_caveat('caveat_2')
v.verify(macaroon: m, key: '123')
=> CaveatUnsatisfiedError: Caveat not met. Unable to satisfy: caveat_2
```

@petebrowne @joeljames