Initial commit of changed from dblock/msiext 3

based on
https://github.com/dblock/msiext/commit/29302ce78fafe783a8f9c0049a3cbcf97d2686e3