Models repository

This PR add a new layer to the db access. 
Each models will have a associated `Respository` which allow us to abstract all database access. 
This will allow us to remove all `spod` calls from the business layer, and only have call to the `db layer`, the `Repository`.
The size of the the `modules` will decrease a lot to, since all the database logic will move inside the Repositories.

This pull request add an interface `Repository` which provide at least the common models access (save, delete, update), which is implemented by a class SpodRepository, implemented itself by the final repositories.

At the moment, one class is semi ported for example, the Wallet.

( the PR, remove the database table SiteCurrency, and integrate it directly inside the Currency table).

Only for review for now, this is incomplete

cc @brissa-a , @Masadow , @regnarock .
Why not a simple constructor here?
e.g.:
```public function new(user_id: Int, fund: Float) {}```
Is there any limitation that made you do this static constructor?