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 

Unused method argument - `reimbursement`. If it's necessary, use `_` or `_reimbursement` as an argument name to indicate that it won't be used. You can also write as `category_options(*)` if you want the method to accept any arguments but don't care about them.