Adding an in-memory cache system for schema

to avoid re-openning n times a schema file
Adding a count method
updating the Model class with cache system and cleaning it up
Adding a ModelCollection class

This class may replace every Model::select* in the future because it's
more flexible.