Restore support of user-customizable constants

php-extra-constants and web-mode-extra-php-constants can be used to
define additional symbols as constant, but this now only makes sense for
lower or camel-cased constants

Ideally we'd implement this using the cc-lang constructs but
c-constant-kwds does not allow user customization (c-lang-defconst). For
identifier keywords cc-mode has the *-extra-types variables but this
does not work for constant keywords.
Support T_NS_SEPARATOR in identifiers

All identifiers are recognized as words in cc-mode/php-mode, so special
care is taken to have our custom highlighting pattern for variable names
not include the separator.
Support statically called methods with namespace
Fix unexpected pass of test for issue-9

Issue #9 is not fixed (and expected to fail) but because of the
different highlighting of unmatched string delimiters in the cc-mode
branch the test passed. This commit makes the assertion more specific so
it fails again.
Fix indentation of cascaded calls in arglists
Fix indentation of arrays and method calls

Related to issue-115, added test case
Fix fontification of constants in strings
Restore broken psr2 and symfony2 styles

Those two were removed in the first cc-mode conversion commit. Below a
short summary of the styles and how I intend them to behave in this
branch.

Drupal: Sets indentation to two spaces, some indentation tweaks. Does
automatic removal of trailing whitespace.

Wordpress: Indentation tweaks and tab-width of four spaces.

PSR2, Symfony2 and PEAR: They are basically the same. The Symfony2 style
allows the unofficial 'hanging semicolon' behaviour. PEAR is the
default. I think it would be better for php-mode to just forget about
PEAR, drop Symfony2 as a style (the framework uses PSR-2) and use PSR-2
as default. The hanging semicolon could be a configurable option,
independent of the style in effect.

This commit fixes the failing test on whitespace removal (issue 53).