always set hooks in :prepare, not :post-init

otherwise it won't help for users with `el-get-is-lazy` set to `t`.

-----

I noticed a bunch of recently added or modified were calling `add-hook` and/or `eval-after-load` in `:post-init`, but since those things should take effect before the package is started it's better to put that in `:prepare`.

@dholm: I think most of the modifications/additions were yours, can you confirm these changes are sane?