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 too, since all the database logic will move inside the Repositories.

This pull request adds 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, removes the database table SiteCurrency, and integrates it directly inside the Currency table).

Only for review for now, this is incomplete

cc @brissa-a , @Masadow , @regnarock .
Oh my bad! I didn't know we couldn't overload constructors in Haxe. The last line is a bit more beautiful, it resembles like the builder pattern from Java.
Maybe 
```
var empty: new WalletModel(); // empty
var init: new WalletModel().id(id).fund(0.); // with values (you could use `setId` instead of `id`)
```
or even more java-like (although I don't like it much in Haxe)
```
var empty: new WalletModelBuilder().build(); // empty
var init: new WalletModelBuilder().id(id).fund(0.).build(); // with values
```
It's true that both are a little more verbose, but it allows you to easily expand your code to add more values in whichever order you may want.