Add new 'use function' sequence for importing namespaced functions

This is specified as the use_function RFC:

* https://wiki.php.net/rfc/use_function
Correctly distinguish between functions and constants

So far 'use function' applied to both constants and functions. This
patch correctly separates the two.
Import namespaced constants via new 'use const' sequence
Add test case for conflicting use and use function alias (stas)
Removed assumption that \\ will be present

The function zend_add_ns_func_name_literal is called if the parser finds a function that is not in the global or current namespace. It assumes such a function will have a \\ in it, which is no longer true with the use function patch. The code change above removes that assumption and makes the test work:
PASS use and use function with the same alias [Zend/tests/use_function/conflicting_use_alias.phpt]
More test cases for conflicting aliases
Add test cases for conflicting use and definition in same ns (stas)
Compile error on function definition conflicting with import
Disallow using functions/consts defined in the same file

* Keep track of defined function and const filenames
* Prohibit use function foo if function foo exists
* Prohibit use const foo if const foo exists
Compile error on const definition conflicting with import
Adjust some test names, remove obsolete and duplicate tests (nikic)
self and parent are valid function and const names (nikic)
Comment nitpick (nikic)
Handle case sensivity of constants (nikic)
Add test for conditional function declaration
Fix issue with global fallback when not in global space
Fix issue with global fallback not in global space
fix Zend/tests/ns_040.phpt failing

It was wrongly assumed the namespace has to be looked up in a case
sensitive manner too. Fixed the lookup to use a lower case
represenation of the import name.
Add "Done" output to distinguish hard from soft failures
Clarify type of use in error messages