[WIP][security] introduce sensitive value object.

it fixes https://github.com/Payum/Payum/issues/78

The workflow:

```php
<?php

$model['cardNumber'] = new SensitiveValue('1111222233334444');

serialize($model['cardNumber']);
//NULL

clone $model['cardNumber'];
// exception

$model['cardNumber']->erase();
// remove value forever.

$model['cardNumber']->get();
// get sensitive value and erase it

$model['cardNumber']->peek();
// get sensitive value but not erase it. use carefully

(string) $model['cardNumber'];
// empty string

// later in action:

$model = ArrayObject::ensureArrayObject($model);
$api->purchase($model->toUnsafeArray());

//the array contains unsafe credit card number. This primitive array never stored anywhere, just passed as is to gateway.
```

TODO:

* ~~add test for __clone~~
* ~~add test for ArrayObject::toUnsafeArray()~~
* ~~update all currently supported payment  to use this object.~~
* ~~update docs~~
* update payum rest
* update zend module
* update yii extension