Abstract payment model

With this refactor we are more abstract about the resource, allowing easily add a new resource as `Match`.

Part of neighborly/neighborly#219 and depends of #63.