ProgramContext: add "delete()" method
viewer: add stats, refactor layout
ProgramContextCache : add a basic cache (map) to avoid loading several times the same ProgramContext
demo: add demo1 a basic per-fragment light