General charges on a customer (one time purchases)

As a remake of #96, this will introduce general charges on a given card or customer aka one time purchases.

```php
$user = Auth::user();
$token = Input::get('stripeToken');

$user->card($token)
     ->charge([
         "amount" => 1500,
         "currency" => "usd",

         // additional properties...
     ]);
```

If you omit the token, it will try an search for a card stored on the customer object else throw an exception. When a charge is successful, it will return a charge object that you can catch and store. 

If a customer doesn't exist, it will create the customer with/without a card. If without a card, it will store the customer as well as throw an exception once a charge is made without a card. 

charge() takes an optional second parameter for defining user properties.
should be:
@return \Laravel\Cashier\StripeGateway