Switch to exception-based error handling during response generation

New class QlErrorResponse supersedes QlModule::early_error_response().
Now most of the error-prone code in QlCoreModule::main_run() is executed
in a “try” block, and error conditions can get out of the code flow by
throwing an instance of QlErrorResponse instead of calling a function that
uses the “exit;” statement to achieve the same effect.

Remove some special-case localization support; always rely on
$_SESSION['ql_locale'], which is now made available in the “catch” block
in QlCoreModule::main_run(). Template-related functions still support
using an alternate locale.
Remove redundant “l10n” from generated localization file paths

Localization files are are in a “l10n” directory and have the string
“.l10n” in their name; get rid of the latter.
Fix $_SERVER[LROOTDIR]

In commit c77469dba69c5dc3247c34bc5b45393bef4711c4, moving the
QlCoreModule class to its own file broke $_SERVER[LROOTDIR]. This takes
into account the new file name.
Rename, cosmetic fix and improve comments for QlXhtmlResponseEntity methods

Rename QlXhtmlResponseEntity::include_script() to include_js() and
QlXhtmlResponseEntity::include_stylesheet() to include_css(), to increase
consistency (folder names have the same pattern) and semantics (“script”
always meant “JS”).

Avoid outputting an extra tab character in both methods.

Improve wording in comments to reflect more accurately what these methods
do.