with-hooks-disabled thread visibility and f meta

Current implementation of with-hooks-disabled makes use of with-redefs that are visible to all running threads, 

This makes its use in multi threaded code unexpected (some threads will have it disabled while other don't depends on with-redefs call duration).

Using with-bindings makes it effect only single thread visible and in my mind more usable.

Second commit adds the metadata back to the f argument making it possible for the hook to operate on its name and argument, without it hooks are left only with analyzing args structure limiting its use.

Thanks