Non-volatile programmable photonics based on phase-change materials