[feature/avatars] Modularized Avatars

A modularized avatar system that easily allows plugins to be created
for various avatar services, such as Gravatar.

This inital commit includes module support and is backwards
compatible with 3.0 avatars, but does notcontain ACP or UCP modules
for manipulating new avatars.

PHPBB3-10018
[feature/avatars] Refactor avatars to use manager

Manager now stores singletons of each driver to speed loading.

PHPBB3-10018
[feature/avatars] Add drivers for standard avatar types

Adding drivers for gallery, uploaded, and remote avatars. These may
be used as examples for others to develop their own avatar drivers.

PHPBB3-10018
[feature/avatars] Rename gallery avatar driver

Renaming gallery avatar driver to better work with existing config options.

PHPBB3-10018
[feature/avatars] UCP Avatar Interface

This stubs out the avatar form fields and how form processing will
occur. Form processing is not yet implemented, but shouldn't be too
hard. After this I will refactor/duplicate some of the logic for the
ACP.

PHPBB3-10018
[feature/avatars] Various cosmetic changes

Various small changes based on feedback from nn-
* Renaming $php_ext to $phpEx
* Fixing copyright years
* Explain $ignore_config
* Explain Regex
* Copypasta package error
* rename get_singleton

PHPBB3-10018
[feature/avatars] Implement UCP remote/local avatars

Implementing selection logic for gallery and remote avatars. Modified
some of the driver interfaces to make things work nicer also. Upload
functionality will be in the next commit.

PHPBB3-10018
[feature/avatars] Fixing remote avatars size checks

Remote avatars size checks were broken. It assumed getimagesize() was
available and used the wrong template values.

PHPBB3-10018
[feature/avatars] Implement avatar uploads for ucp

As above, implement avatar uploads from local and remote sources in
the UCP.

PHPBB3-10018
[feature/avatars] Refactor avatar's handle_form

Since it was performing two distinct operations, refactor handle_form
to separate functions that prepare and process forms.

PHPBB3-10018
[feature/avatars] Support proper avatar deletion, stub ACP

Fixing avatar deletion in the UCP and ACP, and stubbing the ACP
configuration page. I'll admit I kind of got caught carried away, so
this really should be a couple separate commits.

PHPBB3-10018
[feature/avatars] Fixing typos in avatar manager and local avatars

See above

PHPBB3-10018
[feature/avatars] Dynamically list the avatar types in UCP and ACP

List the avatar types more nicely, adding UCP modify user support

PHPBB3-10018
[feature/avatars] Rework UCP to be simpler/more consistent

Redesigning the UCP avatar page to use javascript to make use less
confusing. This design is also more easily transfered to the ACP for
group avatars, which will give better consistency in the long run.

PHPBB3-10018
[feature/avatars] Update ACP manage users, fix gallery focus issue

Updated ACP to match UCP with dropdown. Correctly determe which
avatar to focus on by checking if the form was submitted and
avatar_driver is set.

PHPBB3-10018
[feature/avatars] Make avatars generic

Adding a cleaning function for data coming from the users/groups
tables so drivers only deal with clean data (ideally). Refactored
get_user_avatar() and get_group_avatar() to use an underlying
get_avatar() function.

PHPBB3-10018
[feature/avatars] Made ACP avatar gallery in Manage Users prettier

Added row/column information so avatars can be displayed nicely in
the ACP

PHPBB3-10018
[feature/avatars] Support editing of group avatars in ACP

Edited templates for group avatars so they can be properly modified in ACP

PHPBB3-10018
[feature/avatars] Making schema changes for db tables

These schema changes make manual column chaning uncessesary.

PHPBB3-10018
Merge branch 'develop' into feature/avatars

* develop: (335 commits)
  [ticket/10575] Adding public visibility to the methods.
  [ticket/10575] Fixing non-static access to static functions get_instance
  [ticket/10547] User is not logged in as admin after installation
  [ticket/10650] Revert merge of 'rahulr92/ticket/10650' into develop
  [ticket/10650] Added checking for empty subjects
  [ticket/10650] Corrected intendation
  [ticket/10650]Added permission checking and utf8 functions
  [ticket/10650] Cropped subject and inserted newline
  [ticket/10650] Corrected space before true
  [ticket/10650] Changed language files and forumlist
  [ticket/10650] Added static sql files
  [ticket/10650] Displaying last topic on forum list
  [ticket/10760] Fix numbering in php fun facts.
  [ticket/10760] Value must be quoted as it might be two words.
  [ticket/10760] PHP is great. This commit is the proof.
  [ticket/10760] Catch both versions of parse error output in php.
  [ticket/10607] Added 'Powered by' translation string.
  [ticket/10760] Account for display_errors=stderr in pre-commit hook.
  [ticket/10760] Quote PHP_BIN when using it.
  [ticket/10760] Use echo -e only if echo understands -e.
  ...