Let user create draggable control points

Our layout components are doing things with `selected`, `colour`, and `visible`, which aren't really layout properties. Maybe we need to rename our layout components to something else ('properties' rather than 'layout' maybe?) that makes more sense with the current changes.