Braintree Payment Gateway Integration

Work done is this PR

- Users can choose to make a payment recurring.
- User will get subscribe and his transaction will be made in case of recurring payment.
- Vault transaction is maded to prevent the user from giving credit-card details again and again.
- If user is subscribed and he changes his plan subscription get updated.
- Service for braintree to refactor the code and to prevent the fat models or controllers. 

Note:
Specs will be added latter.