Huge work on the OOP (Object Oriented Programming) library.

Library:
- added many features
- refactored a lot: one module for pure OOP, that is classes, one for DOP (Data Oriented Programming) for working with data, properties, and some helpers, probably to be moved somewhere else again. Still need to move files in dedicated folders.
- exported more functions

I adapted the rest of the code to use the added features: it's now more concise, clearer, more declarative.
local code