Fixed edge case when required column (i.e. the primay key) of a table was considered empty when it wasn't.

This is due to the stupid implementation of the empty() function and it's treatment of the string "0" as empty. Clowns.
Removed automatic checks for CSRF in Controller. This is better implemented at application level
Changed router to accept a profile name during init, not just the FQDN of the profile to load routes from
A few minor cleanups to Core and Exception classes
Made the depends_on constraint support callables.