Add flexbox behavior and responsive units (rem, em) to GUI

- Link to forum discussion about the feature:

- Feature description:
Currently, the GUI system lets you create user interfaces using px and % units aligned on a grid with custom values for columns and heights. However, these tools aren’t enough to ensure a consistent experience across different screen resolutions and device pixel densities. CSS has units that adjust based on these differing browser defaults (rem, em) and also a modern layout system (flexbox) to ensure nice-looking UIs for websites on any screen size. I think Babylon.js should implement these concepts into the GUI system, so that Babylon users can create more responsive and attractive menus and interfaces for their applications. See the forum post above for more context.

- Additional links that could help implementing the feature:

*Ported from Github