Ticket #5816: Skip typename in template arguments for enum initializers.
Merge pull request #310 from simartin/ticket_5816

Ticket #5816: Skip typename in template arguments for enum initializers.
re-enable tests in testnullpointer
#5811 false postive: (error) Null pointer dereference
Fix regression from first attempt fixing #5811 (9dce9bddcbbddb252653367f0e39a4c77108f5eb)
Partially rewritten AST compilation:
 - More straightforward approach for handling right-to-left associativity
 - More straightforward approach to handling unary operators
 - Improved handling of brackets

This fixes #5784, #5795, #5797, #5799, #5810 and a bunch of other problems
Refactorization: Use AST in CheckOther::checkRedundantCopy(), CheckOther::clarifyStatement() and CheckPostfixOperator::postfixOperator().
Refactorizations optimizing std::string usage:
1) Added global const std::string emptyString; object. It is used for:
- Empty string passed to a function, which takes the parameter by reference
-> Avoids constructor call (std::string::string(""))
=> Reduces binary size (25% for testrunner.exe, 5% for cppcheck-core.dll)
=> Avoids unnecessary calls
- Functions, that return a string by reference
-> Even functions that return an empty string in some branches can return by reference now.

2) Added overloads for TestFixture::assertEquals for the most common use cases:
-> Moves conversion from const char[] to std::string into a function, reducing code duplication in binary.

Conflicts:
	lib/errorlogger.h
Updated solution to VS12
Visual Studio: Use testsuite.h as precompiled header (compiled into testrunner.cpp)
-> Reduces build time of project testrunner by 13 seconds (16%)
Refactorization: Moved condition in Token::tokAt() out of loop.
Benchmark code
Use C++11 std::sto* instead of std::ato* where appropriate (emulated in cxx11emu.h)