Very nearly there with 3D Secure...

Just need to sort out the sending of the final set of requests, as
currently the omnipay example app tries to send the request that is
returned by the completePurchase method.