Data\Filter: add isChain() and isExpression()

This makes node type distiction easier
Data\Filter: enforce isEmpty() implementation
Data\Filter: add missing abstract function type
Data\Filter: fix $self VS $this
Data\Filter: add or/andFilter implementations

Those shortcuts make it easy to correctly add or/and conditions
regardless of the original filter type
Fix ApplicationBootstrap::getBootstrapDirectory() when Icinga Web 2 is served using PHP's built-in web server
EmbeddedWeb must not load core modules, i.e. setup
Revert "Remove Zend/Locale from our vendor library"

This reverts commit 9b2bff4d17189089eb8a9513f70421a068b4d540.

At least Zend/Filter/Alnum.php requires Zend_Locale.
Remove Zend/Locale/Data/*.xml

This should be safe.
Throw exception on E_NOTICE

Use of uninitialized values must be detected asap.
Fix "Undefined variable: form in eventhistory.phtml"

Please test a changed view at least once :(

fixes #7682
Remove the filter box from the event grid because it has no value

refs #6979
Merge remote-tracking branch 'origin/feature/redesign-7144'
AbstractWidget: default properties should be empty

Helps troubleshooting, getter would fail with a hard-to-track error
otherwise.
FilterChain: add and use count() function
FilterOr: override operator change for NOT

Replacing an OR filter with a NOT operator should return a NOT OR
when the OR contains more than one entry
Widget\Tabs: use icon for dropdown tabs
Web\Request: the request should know the URL
show/contact: sort notifications
components/selectioninfo: use help icon for help