Add a rudimentary hooks system to lineman. For now

this allows users to intercept behavior as each
npm module with tasks is loaded (for handling name
conflicts, among whatever other duck-punching they
want to do)