[feature/event-dispatcher] Introduce a port of Symfony2 EventDispatcher

PHPBB3-9550
[feature/event-dispatcher] Allow subscribers to be loaded from extensions

PHPBB3-9550
[feature/event-dispatcher] Add a sample hook in page_header

PHPBB3-9550
[feature/event-dispatcher] Support setting data on an event

PHPBB3-9550
[feature/event-dispatcher] Prefix event name with 'core.'

PHPBB3-9550
[feature/event-dispatcher] Fix event class name in dispatcher interface

PHPBB3-9550
[feature/event-dispatcher] Add Symfony2 to AUTHORS

PHPBB3-9550
[feature/event-dispatcher] Correct copyright statement for Symfony2 files

Also add a notice to the files that were taken from Symfony2.

PHPBB3-9550
[feature/event-dispatcher] Remove copied EventDispatcher code

PHPBB3-9550
[feature/event-dispatcher] Use real EventDispatcher through composer

* replace the copy-pasta EventDispatcher with the real one from Symfony2
* use composer for managing this dependency, use composer autoloading

PHPBB3-9550
Merge branch 'develop' into feature/event-dispatcher

* develop: (95 commits)
  [ticket/9084] Explain the logic.
  [ticket/10653] Call get_row_count of base class in mysql get_estimated_row_count
  [ticket/9813] Only get posts table row count if we detected a fulltext index.
  [feature/append_var] Adding test case
  [ticket/7432] Delete redundant reference to "appropriate menu item".
  [ticket/10618] Change phpBB 3 to phpBB 3.1.
  [ticket/10685] Refactor template test defaults for php 5.4 compatibility.
  [feature/append_var] Adding append_var template class function
  [ticket/9813] Also use estimated row count of posts table for fulltext mysql.
  [ticket/10653] Fix parameter to substr() in unit tests. Should be 1, not -1.
  [ticket/10653] Unit tests for get_row_count() and get_estimated_row_count().
  [ticket/10653] Add ability to count table rows to database abstraction layer.
  [ticket/9813] Use table status row count only if greater than 100000 or exact.
  [ticket/9813] Use SHOW TABLE STATUS to get search stats for native on MySQL.
  [ticket/8652] Comment for also updating forum watch table in user_notification.
  [ticket/8652] Sending 2 emails on 2 replies
  [ticket/10680] Add /phpBB/ext/* to .gitignore
  [ticket/10672] Fix total post count language string in statistics and feed
  [ticket/9220] Remove margin on table.table1 so it's centered in the blue box.
  [ticket/10453] Fixing spacing
  ...

Conflicts:
	tests/bootstrap.php
[feature/event-dispatcher] Delete hard dependency on composer.

Applications should not depend on package managers.

PHPBB3-9550
[feature/event-dispatcher] Implement configurable autoloader selection.

The code is in startup.php which should be used by all scripts.

PHPBB3-9550
[feature/event-dispatcher] Add get_data_filtered function to event data.

Its purpose is to discard any keys added by hooks to data stored
in the event, such that only keys that the ledge knows how to handle
are processed.

PHPBB3-9550
[feature/event-dispatcher] Implement mutation for page_header ledge.

PHPBB3-9550
[feature/hooks] Outline for RUNHOOKS template tag.

Ported to the new develop, hopefully this is still sensible.

PHPBB3-9550
[feature/hooks] Refactor params handling in template compile class.

This is going to make adding extension manager in subsequent
commits easier.

PHPBB3-9550
[feature/hooks] Inject extension manager into template class.

Template class passes extension manager to template compiler.

Template compiler passes extension manager to template filter.

Template filter will use extension manager to locate hooks
as it is compiling templates.

All extension manager arguments are optional. If an extension
manager is not given, template hooks will not be invoked.

PHPBB3-9550
[feature/hooks] Inject template compile into template filter.

This is needed for hooks in order for the filter to compile
template files from extensions.

PHPBB3-9550
[feature/hooks] Really basic template hook implementation.

PHPBB3-9550