Split layout code into a separate crate.

This reduces compilation time for the main crate to 25s for me when modifying parts of the compositor or constellation.