Use <bang> for `function` and `command`

While not required in general, this allows to re-source the script for
debugging etc.
Merge pull request #28 from blueyed/use-bang

Use <bang> for `function` and `command`