Adding page title to help pages
I18n :: Language::getConfigVar() now triggers E_USER_NOTICE

Language::getConfigVar ($key) is the private method to get the
value of the Smarty configuration variable $key. This is used to
get the localized string $key.

When the key isn't found, it returns instead #$key# (e.g. #foo#).
This is a behavior added in Azhàr.

Now, it also triggers an error at E_USER_NOTICE level:
The l10n key 'foo' doesn't exist.
Improving error handler code, throwExceptionErrorHandler

[ Feature descriptions ]

We provide a first error handler, throwExceptionErrorHandler to transform
the non recoverable errors into exceptions.

It handles all errors except the four following types:
* E_NOTICE
* E_USER_NOTICE
* E_DEPRECATED
* E_USER_DEPRECATED

[ Future plans ]

This is a transition code, as in the roadmap, for the error handling epic,
we want to offer logging through Apache log4php and through a modern errors
reporting service. We'll output nice 500 pages with feedback invite too.
New feature: custom header and footer at workspace level

[ Feature description ]

At workspace level, an overall header or footer can be added.

It's defined by an URL, by a path to a local filename, or any
others supported by PHP protocols and wrappers.

It's displayed as is, not parsed or executed.

[ Goal ]

To allow workspaces to customized their environment

[ WorkspaceConfiguration class ]

* string WorkspaceConfiguration::$header
  Contains the URL or path to the header to print

* string WorkspaceConfiguration::$footer
  Contains the URL to path to the footer to print

[ Workspace configuration file ]

Two parameters are added to the JSON configuration files:

* header: the URL or path to the header to print (optional)
* footer: the URL to path to the footer to print (optional)

[ Views ]

* header.tpl: prints the custom header at first element of body
* footer.tpl: prints the custom footer at one of the last element of body,
              but before the JS libraries calls.

[ Notes ]

* This system is not intended to replace full customization.
  For that, create a new theme, and request as new feature a
  support of themes at workspace level.

* Login and error pages don't use header/footer views, so
  won't print them. For that, we should allow a workspace to
  replace some templates files by its owns.

[ Future plan ]

* Caching and caching invalidation of this feature (bug 24).
* Detect Smarty templates to offer access to variables (bug 25).
Improve code comments