[layout] Split unit classes into their own files
[layout] Ensure that moving/resizing items respects reference point