Refactor hooks
Refactor hooks

Hooks have always been a mess. There was no organization when they were
added, as when the project first started there was no need for them.

To make things consistent, break out disabling hooks into
__lp_disable_hooks(), and make prompt_on() be the enabler of hooks. Then
have lp_activate() disable hooks at the start, and enable hooks at the
end.

Some small changes around how state is detected, but no functional
difference here.

jaesivsm/liquidprompt,milouse/liquidprompt,nojhan/liquidprompt,laurentbardin/liquidprompt