Make layout configurable and "variable"

Make layout configurable and "variable", provide 2 layouts (US Qwerty and Canadian French) and two variants ("left-handed" and "right-handed").
Format