Added hot-reload, mesh renderer uses mesh id and not pointer.

Window creation sets multisampling to 2 by default.

Hot-reload can be tested by pressing F5 on the keyboard. It triggers
reloading of all resources in all the caches.

Cleaned-up program cache. It no longer derives from the BaseResourceCache.
Changed multisampling to 2x