Refactor JWT generation to reduce code duplication (bug 979551)

- Split JWT creation and testing into their own modules
- Create 'product' abstraction layer
- Single JWT producing code, conencts to webapp and inapp through product interface layer
Hook up prepare_pay_inapp to mkt/webpay API (bug 980092)

- Move JWT producers to mkt/webpay
- Create end point in mkt/webpay to retrieve an in app JWT
- Add tests
Move Contribution creation out of JWT creation (bug 985666)

- Move contribution object to views, out of jwt producer