[FIX] _handle_exception() logic amongst requests and ir_http objects

Changes in website's ir_http#_handle_exception():

- exception is mandatory, can't be None anymore
- we don't touch non website_enabled requests
- we don't touch explicits plain responses from parent
- logic flow is now easier to read (I hope so)

Change in website's ir_http#_dispatch():

- In case of real 404, instead of returning self._handle_exception(),
  just let parent do the job (so we call super())
[FIX] check after openerp's AccessErrors in website's _handle_exception
Merge pull request #761 from odoo-dev/saas-3-handle-exception-fme

[FIX] _handle_exception() logic amongst requests and ir_http objects

Changes in website's ir_http#_handle_exception():
* exception is mandatory, can't be None anymore
* we don't touch non website_enabled requests
* we don't touch explicits plain responses from parent
* logic flow is now easier to read (I hope so)
* check for openerp's AccessError and convert to 403 errors

Change in website's ir_http#_dispatch():
* In case of real 404, instead of returning self._handle_exception(), just let parent do the job (so we call super())
[FIX] http.dispatch: call handle_exception() even w/ session missing/expired

This gives JSONRequests a chance to return
a proper JSON-RPC result when an HTTPException
is raised downstream, instead of returning a
plain HTML 404 error.
[MERGE] Forward-port of saas-3 up to 141e1b2