Auto create configuration objects for plugins.

Whenever a plugin is activated a configuration object (using OpenStruct) will be
created in Pry.config for that plugin. For example, for the plugin "pry-doc" the
object Pry.config.pry_doc would be created.

See #436 for more information.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
Set plugin options before requiring the plugin.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
Preserve backticks and don't double highlight [Fixes #562]

Before this change all `` pairs were removed from documentation which
makes the ``foo'' quoting style used by some authors look very odd.

We'd also try to syntax highlight code inside `` inside code, which
caused nasty rendering errors as the escape sequences got tangled up.
Revert "Always start the prompt in the first column (fix #551)"

This fixes #564 this commit does more harm than good, as it
causes things to break badly on libedit. The bug it's fixing is
also quite trivial and highly unlikely to annoy anybody in
practice.

This reverts commit 7af3660042797ef37008cee7585858ffbc483543.
Merge pull request #548 from YorickPeterse/master

Auto create configuration objects for plugins
v0.9.9.5 minor release
I WAZ ERE 2012
version 0.9.9.6 release

As a result of the 0.9.9.5 fix for #558 we got the following
error on 1.8.7:

"On MRI 1.8.7-p358, this results in "TypeError:
String can't be coerced into Fixnum",".

This commit should fix that.
Set _file_ and _line_ when calling whereami.

When a user would place a call to `binding.pry` followed by calling `whereami`
the locals _file_ and _line_ would not be set properly. This commit fixes this
by using the helper method `set_file_and_dir_locals()` (which also ensures _dir_
is set properly) as well as `_pry_.inject_local`.

Currently the _file_ local is set to /path/to/your/directory/(pry) if the
binding was set in a Pry session itself. I'm not entirely sure if this is
expected behavior, if this isn't the case it shouldn't be too hard to detect and
fix in a following commit.

This commit fixes #574.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
_line_ should not be set by whereami.

Due to a small misunderstanding _line_ was set when really only _dir_ and _file_
had to be set when the user would call `whereami`.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
"ri" command enhanced

Features:
 * Lightning fast
 * Lazily loaded
 * Color coded
 * Smells like peppermint
"ri" command made to actually work this time.
Remove unnecessary tracking of Pry session count

The only purpose of active_sessions is to decide whether to save input
history, but there's no reason not to save the history at the end of
each session.
Only try to Hash modules [Fixes #576]
Close tempfiles before editing [Fixes #575]
Set blocking_flag correctly on absolute $EDITOR
Support absolute paths to $EDITOR
Support windows paths in editor too
Clear the current line before starting Pry.

This should fix #566.

Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
upgraded gist and save-file

gist now supports:
--hist for gisting readline history
-k for gisting classes
-o for gisting evaluation results
A newline is also inserted after each element of the gist

save-file now supports:
--k for classes
-o for evaluation results
(--hist isn't requires as that's suppored by 'hist' command itself)