refactor select: move all the directive logic in the main controller

Each subdirectives had some internal logic depending on the logic of the main controller.
All the logic had been moved inside the main controller to simplify subdirectives. One
scope and one controller are now shared within the three directivese. The markup to use
the directives is cleaner.
fix select: disable text selection on tag

When fast clicking on the tags to display the dropdown, the text was selected. Adding
`user-select: none;` give the expected behaviour.
refactor select: reorganize and comment code

Regroup the controller methods by scope and comment the non-obvious one.
Use function statements with an API declaration at the end of the controller.
Rename `selectedElements` getter to `getSelectedElements`.
feat select: link filter to callback

When filtering, if the callback `filter` is set, the new filter is sent to the callback. This
callback can then use this filter to make ajax calls.
feat select: add loader and helpers

Add helpers when no results are displayed or if the filter isn't long enough.
Add loader to indicate that an ajax call or another long method is in progress.
feat select: update demo
feat select: add hover delete for selected items in multiple

To deselect an item in a select multiple, there was no other solution than opening the
dropdown, searching the item and unselecting it. By adding a button when hovering the
selected item, we can now delete it more easily.
feat select: deselection on non-multiple selects

Add `allow-clear` option to be able to remove the value from a non-multiple select.
When an item is selected, a cross is available beside the dropdown arrow. Clicking on it
remove the currently selected item.
rework select: use child scope

Since the sub directives of lx-select are used inside a lx-dropdown, using the parent
scope was using the dropdown scope. By creating a reference to the main scope of
lx-select inside an isolated scope, those sub directives now uses the reference.
feat select: remove delete button from multiple tag
fix select: null pointer on filter if none selected
refactor input group: change binding type
chore demo: update according to new binding type
refactor tabs: one scope throughout directives

Each subdirectives had its own scope in the tabs directive. By using
only one shared scope, we concentrate all the logic at one place and
manage all the directive options from the ‘lx-tabs’ directive.
chore demo: update attr according to tabs refactor
refactor search filter: observe theme attribute
chore demo: remove useless classes
refactor file input: change binding type
chore demo: remove useless quotes
chore demo:enhance homepage wording