add current taphold.js - the one merged from #538 was broken
trap exceptions when running hooks, log the error, and continue
should reduce issues caused when plugins are broken