Add layout_load_before event dispatching

Hi,

I have added layout load event dispatching to ESI Controller, so now extensions can add their handles to Layout Update in the same way as it works when you call `loadLayout` in controller.

I didn't really get how `_swapCustomerHandles` works, but with my fix `customer_logged_out` and `customer_logged_in` was added correctly.

Thanks in advance!