Export everything through PayPal.REST
Tentative refactor (WIP).
Improve the SubmissionResp object.

Instead of saving a list of Links (which is more information than is
needed to complete the payment), just store the actual value of the one
link we need ("approval_url") as a Text. Use the Link data type only
internally. Return an error if an ApprovalUrl isn't included.

Also make some random improvements like using Text more and
alphabetizing makeLenses and deriveJSONs.
Touch up tests.
Use algebraic data type for errors.

Also switch back to a more standard interface where there's a function
for each API endpoint.

Also decode the find response from PayPal (to the new CompletionResp
type) instead of just leaving it a Text.
Full parsing of CompleteResp (SECURITY FIX).

Until CompletionResps were fully parsed (which we finally do it these
last two commits -- at least for the important parts), the app would
return right even for unsuccessful transactions, as long as PayPal
used a 200 status code.

Also, upgrade to the newest wreq, which also lets us bump lens up to the
newest version.
Merge pull request #3 from fanjam/0.4

0.4