only block keys with bindings in global-map

Some minor-modes "reclaim" key sequences that are better used through
their "guru" mappings. An example is smartparens, which binds <C-right>
to `sp-slurp-forward-sexp` or drag-stuff, which binds <M-up> to
`drag-stuff-up`. In these instances, we want to check if the key has
been remapped elsewhere before blocking it.

`guru-affected-bindings-list` has been modified to also contain a
reference to the original key binding. If, upon entering the original
key sequence, the bound function is different than the original binding,
then we let it proceed unhindered.

Some additional fixes:

* remove <M-up> and <M-down> remappings which are not bound to
anything by default.

* point <home> and <end> to beginning-of-buffer and end-of-buffer
  respectively, since these are what they are bound to by default