Abstract payment controller

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