Panel rework with the aim of supporting more panel layouts

This is my project to gradually rewrite Cinnamon's panel handling with the aim of opening up for more flexible panel-layout schemes. In the process, I have centralized the panel-handling code to the LayoutManager and made it parameter-driven.

This opens up for greater choice in panel layouts, not limited to a fixed set of options ("Classic", "Traditional", etc.). As a a proof of concept I have added a new panel style, tentatively called "Classic flipped", with the main panel at the bottom and a secondary panel at the top. For those who are handy with the gsettings command-line interface, it is possible to define other kinds of layouts.

Due to the fact that all versions of Cinnamon will crash if the panel-layout setting is not recognized, I have chosen to create a new settings key, "desktop-panel-layout", so that one can switch back and forth between new and old versions without crashing.

Current status: Work in progress, no known problems. Feedback is most welcome.