libhawaiishell: Rewrite Element

Element no longer inherits from QQuickItem, it is a QObject now and
creating an instance loads the it with its incubation controller.

Issue: #134
libhawaiishell: Say hello to ElementItem

ElementItem creates an item from the element's QML code into a separate
engine with its own incubation controller.

Issue: #134
client: Use the new Element and ElementItem

Modify the code according to latest changes in libhawaiishell.

Issue: #134
libhawaiishell: Add element error file definition to shell packages

Define a QML component that shell packages implement to display
error messages when an element fails to load.
desktop: Element error representation

Show errors occurred during element loading in place of the actual
element.
tablet: Element error representation

Show errors occurred during element loading in place of the actual
element.
launcher: Fix typo in package path
panel: Use Layout attached for fillWidth and fillHeight

Elements no longer have fillWidth and fillHeight properties, just use
the ones from Layout.

Issue: #134
indicators: Fix element

Import QtQuick.Layouts to make the Layout attached object available and
correct properties name.

Issue: #134
indicators: Make avatar icon visible when the picture is hidden

Fix a little error preventing the avatar icon from being visible
when the picture is hidden.
launcher: Rely on fillWidth and fillHeight

Don't set a minimum size because it's useless since we already set
fillWidth and fillHeight.
libhawaiishell: Improve Containment error messages

Properly format error messages.
libhawaiishell: Log how much does it take to create a containment

Give some insight on how much does it take to create a containment, just
like we do with elements.
libhawaiishell: Fix containment initialization in case of errors

Don't call QmlObject::completeInitialization() twice in case of errors.
Look for PolkitQt5-1 instead of PolkitQt-1

Qt 5 version of the library changed package name.
Move ApplicationsModel to a QML plugin

Remove AppCategories for good and move ApplicationsModel to a QML
plugin.

We also move the application icon image provider to this new plugin.
libhawaiishell: Expose form factor and location to elements

The Element attached object now exposes containment form factor and
location so that elements can easily react to containment changes.

Issue: #134
Use Element attached object in launcher and indicators elements

Replace usage of panel context property with the new Element attached
object which is much more clean.

Issue: #134
libhawaiishell: Add title and iconName properties to ElementItem

Add a couple of properties to customize elements even further.
This will be useful to some of my plans to improve indicators, where
they might end up being implemented as elements and therefore they
will need a way to change title and icon name.

Issue: #134
libhawaiishell: Expose element identifier

Add another property to the attached object that returns the
element identifier.

Issue: #134