Separated layout mechanism between different apps.

Now each app has its own set of layouts, which will not interfere with each other if two apps are loaded in the same process (for instance an asset manager and a shader ui both being loaded in maya). Rather than a global layout registry, layouts are now stored on a Layouts class (with member functions identical to the old global functions) and the layouts for a given application are accessed via Layouts.acquire( application ).

Note that this is not only a compatibility break in the API, but also that any saved layouts will now be broken. Paulo is happy to deal with the API break, and I'm happy to manually fix any saved layouts if necessary.

Fixes #225.