[ticket/10605] Check for orphan privmsgs when deleting a user

Also moved the hole code into a new function.

PHPBB3-10605
[ticket/9089] Add tabindex to PM recipient box, to allow tabbing to the subject

I also added tabindex 1 to the buttons for adding the recipients.
Also note, that duplicated tabindex are fine:
http://www.w3.org/TR/html4/interact/forms.html#adef-tabindex

PHPBB3-9089
[ticket/10605] Delete orphan private messages on update

PHPBB3-10605
[ticket/9089] Add tabindex to pm/topic/post icon-options aswell

PHPBB3-9089
[ticket/10605] Prefix function with phpbb_ and use true instead of 1

PHPBB3-10605
[feature/new-tz-handling] Wrapper around DateTime for new date time handling.

Wrapped PHP's DateTime with some extensions for supporting phpBB's relative
date formats and provided the DateTime::getTimestamp() method to PHP < 5.3.

PHPBB3-9558
[feature/new-tz-handling] Use phpbb_datetime rather than phpbb_DateTime.

PHPBB3-9558
[feature/new-tz-handling] Renamed old variables and removed extra conditional.

PHPBB3-9558
[feature/new-tz-handling] Update user methods to use new date processing class.

user::setup() now stores a DateTimeZone object in user::$timezone representing
the users timezone. For backwards compatibility a numeric value in
user/board_timezone will be converted into one of the legacy Etc/GMT±X
timezones. This will be used until the user updates his/her timezone in the
UCP.

user::format_date() is now basically a legacy wrapper that transforms a UTC
UNIX timestamp into a formatted localised date using phpbb_datetime::format().

PHPBB3-9558
[feature/new-tz-handling] Correct capitalisation of phpbb_datetime.

PHPBB3-9558
[feature/new-tz-handling] Remove old user::$dst property

PHPBB3-9558
[feature/new-tz-handling] Replace user::$timezone with user::$tz.

user::$tz will store the new DateTimeZone object representing the users
timezone instead of the existing user::$timezone and user::$dst combination.

PHPBB3-9558
[feature/new-tz-handling] Added a user::create_datetime() method.

New method which handles instantiating new phpbb_datetime objects in
the context of the current user.

PHPBB3-9558
[feature/new-tz-handling] Fixed bug with signature of user::create_datetime().

First argument to user::create_datetime() should be optional.

PHPBB3-9558
[feature/new-tz-handling] Correct typo in member comment.

PHPBB3-9558
[feature/new-tz-handling] Comment and optimise phpbb_datetime::format().

- Added comments explaining the complex time computations for rendering
  relative date times.

- Replaced some repeated method invokations with variables.

PHPBB3-9558
[feature/new-tz-handling] Added phpbb_datetime::__toString().

New phpbb_datetime::__toString() magic method that formats the datetime
according to the users default settings.

PHPBB3-9558
[feature/new-tz-handling] Explained name of phpbb_datetime::getTimestamp()

phpbb_datetime::getTimestamp() exists purely to support PHP 5.2 which
does not implement the method.

PHPBB3-9558
[feature/new-tz-handling] Fix undefined variable.

PHPBB3-9558
[feature/new-tz-handling] Check the is_short flag stored inside the format array.

Reuse the existing check store in the format array to determine if the date time
format supports relative formatting.

PHPBB3-9558