Merge pull request #1021 from hrach/database-joinsparser

Database joinsparser
SmtpMailer: switched private methods to protected
Fixed usage of Traversable in ActiveRow::update()
Database: iterate over exact count of columns in Statement::detectColumnTypes()

PHP process is killed when trying get meta info for column number bigger then real count with MS Sqlsrv PDO driver.
Forms: fixed detection of submitted form; POST data can be empty [Closes #1026]
Forms: added setOmitted() [Closes #1013]
Forms: numeric HTTP fields are prefixed (not postfixed) by underscore. [Closes #1007]

Postfix was not sufficient, IE is unable to access radiolist as the HTMLCollection
Template: allow to override helpers loaded via registerHelperLoader
used func_get_args() as argument
improved some tests
removed some PHP 5.2 hints
ObjectMixin: removed support for non-registered extension methods (BC break)
Security\User: injected dependencies, removed $context [Closes #872]
DI\ContainerBuilder: annotation @return is used also for factories referenced by @Class\Name
Database: 4th Connection argument driver-class moved to options
Security\User: fatal error "Call to a member function authenticate() on a non-object" changed to exception
Database: removed unused code
Database: added fetchField() (previously named as fetchColumn, BC break)
Database: faster Row::offsetGet(), invalid offset triggers error
Database: added Connection::fetch*() tests