Move store credits in core

This is the starting point of merging store credits feature (but leave gift cards feature) from extension https://github.com/paulo-surfdome/spree_store_credit_payment_method/tree/move_credit_out into Spree.

Here is the approach we took: go through codes in the directories in https://github.com/paulo-surfdome/spree_store_credit_payment_method/tree/move_credit_out and copy (new file) or merge (decorator) store credits related codes into Spree. And at the same time remove those codes from the extension (Related PR: https://github.com/spree-contrib/spree_store_credit_payment_method/pull/24).

Right now the key components are done. Anyone can take from here.

- [x] merge app directory
- [x] merge bin directory
- [x] merge db directory
- [ ] merge config directory
- [ ] merge lib directory
- [ ] merge spec directory
- [ ] implement store frontend UI 

Line is too long. [89/80]<br>Redundant `self` detected.<br>Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping.