[payment] allow set traversable as payment's details.

This PR contains BC break in `PaymentInterface::setDetails` method. Removing this gives us some advantages:

* Simplify CaptureXXXAction logic a bit. we do not need to force array everytime we set details: `$payment->setDetails((array) $details);`

* Compatibility with [DetailsAwareInterface](https://github.com/Payum/Payum/blob/master/src/Payum/Core/Model/DetailsAwareInterface.php). I have plans to reuse `PaymentInterface` in PayumBundle as unified layer for doing payments. I need these interfaces to be compatible to simplify things.