Added fish_preexec and fish_postexec event

Issue: https://github.com/fish-shell/fish-shell/issues/1549
Implemented a solution as event instead of a function call as discussed here: https://github.com/fish-shell/fish-shell/pull/1550
Added a postexec event as well for completeness

Usage:
```
function preexec_test --on-event fish_preexec
  echo preexec handler: $argv
end

function postexec_test --on-event fish_postexec
  echo postexec handler: $argv
end
```