The logic change here allows for multiple dots to be part
of a file name or folder name. Most Unit Tests have not
been altered and reflect the exact logic as it was before.
usergetdate should return consistent values for different timezone. There are
two return path
1. If timezone is servertime, it returns getdate
2. If timezone other then servertime, it use gmstrftime, which returns string and
values with leading zero.
In second case, leading zero's are removed and values are type casted. One major fix
is with yday, getdate returns 0 through 365, whereas %j returns 001 through 366. This
has been fixed as well.
Includes:
* constants refactoring
* reworked db table init
* support for $CFG->debug = -1
* functional DB tests
* fixed $DB->get_indexes() to not throw exceptions when table does not exist
* fix handling of user passwords in test db
* add debug info to exception messages
* removed unnecessary PHP debug errors from mathslib
* fixed @error suppression in get_string
* fixed PHPUnit error handler setup
* added timezone info to default install