Introducing General::intval()

This method will insure that we are really dealing with a positive integer before trying to cast it.

This should eliminate nasty side effects like casting '1234a' to 1234.
Use General::intval to cast system:id

This will make it safer and should fix #2191
Further optimisations to the Navigation building
Simplify logic in build page around checking for core/extension updates
Introduce Widget::Checkbox to automatically handle checkbox markup creation
Don't enforce the 'column' class for all Checkbox label's by default
Update to use Widget::Checkbox in the DSE/SE
Ensure anything modified in AddSectionElements delegate still works
Preserve CDATA nodes when converting XML string into XMLElement

CDATA was getting identified as DOMText and therefore sanitised when it should be preserved as a CDATA section.
Fix indentation
Merge pull request #2208 from g-wilson/integration

Preserve CDATA nodes when converting XML string into XMLElement
Added Status 302 header in redirect()

I do not know why, but without it, my setup was returning a 500 code if the actual http status was something else (404 in my case).

This fix only makes sure that the 302 status (temporary redirect) will be returned to the client.
After all, a call to redirect must really mean that we want a redirect.

Note: I did not used the Page class helpers since this is 'utility' code and I did not wanted to couple utility code to the Page class.
Better logic for handling http status codes

This change makes the error handler a little bit more smarter in the sense that it will try to extract the http status code from the exception it receives. If not status is found, then it reverts to the original implementation that was returning a 500.
Move bail out earlier in the resolvePage method
Remove dependency on Profiler in the extension manager
That was the wrong check for Profiling...
Added $force param to Symphony::initialiseExtensionManager(). Allows fresh ExentionManager object to be created. Fixes #2209
Symphony now requires PHP 5.3+, so there is no longer a need for code to emulate PHP_VERSION_ID constant.
Merge pull request #2210 from pointybeard/master

Added $force param to Symphony::initialiseExtensionManager()
Minor refactor to XMLElement