Pry::Command::CodeCollector: add #file attribute

This allows callers to know that CC is working on a file rather than ruby code.
edit: ensure 'edit --ex' always edits the exception

There was a bug where if 'edit --ex' was invoked in a patched method context
it would instead to the equivalent of 'edit --method' (patching the current method
rather than the exception)
gist: Use Pry::CodeCollector (like play/save-file)

This enables a simplified UI, i.e: gist my_file.rb instead of gist -f my_file.rb
and `gist my_method` instead of `gist -m my_method`. Unfortunately, we had to kill our
tests in the process of doing this (gist_spec.rb is just commented out) - however since play
and save-file have tests and they use the same Pry::CodeCollector object 'gist' is indirectly
tested. Nonetheless, we should re-add tests at some point