implement Pry global and pry-local configuration.

maybe best explained with an example:
      [1] pry(main)> Pry.config.hi = "hi"
      => "hi"
      [2] pry(main)> _pry_.config.hi
      => "hi"
      [3] pry(main)> _pry_.config.x = 1
      => 1
      [4] pry(main)> Pry.config.x
      => nil
      [5] pry(main)>

'Pry.config' is an instance of Pry::Config::Default. it defines the initial
default configuration values an instance of 'Pry' is going to have. an instance
of 'Pry' uses an instance of Pry::Config who relies on Pry.config as a default
or fallback for keys it cannot find locally.

for example 'Pry.config.color = true' is seen by _all_ pry REPLs who are active
but _pry_.config.color = false is seen only by the REPL session being interacted
with. a number of "config shortcircuts" are still available, for example it is
possible to say `_pry_.input = StringIO.new` or `Pry.input = StringIO.new`. the
shortcuts are maintained for the Pry class and instances of the Pry class through
Pry::Config.shortcuts.

Pry::Config::Convenience adds a method called 'config_shortcuts' which can be used
to setup shortcut access to 'some_obj.config.blah' as 'some_obj.blah'

a lot of tests still fail, so work in progress.

this should help solve #1055.
add Pry::Config#refresh.
update Gemfile
look for a setter before anything else in Pry::Config#method_missing().
add Pry::Config#to_hash for 1.9 compatibility.
Merge branch 'master' into wip-config

Conflicts:
	lib/pry/pry_class.rb
empty Config::Default::STATE when default methods have been defined.
rename 'STATE' as 'state' to communicate its temporary nature.
define Pry.config as instance of Pry::Config.
remove Pry#hooks (use Pry.config.hooks or _pry_.config.hooks)
remove 'sticky_locals' as a configuration option.
Pry::Config#merge! turns Symbol keys to String's.
Merge branch 'master' into wip-config

Conflicts:
	lib/pry.rb
add Pry.config.file_completer, Pry.config.command_completer
remove instance_eval of Pry#custom_completions Proc.
move require of 'pry/indent' to pry.rb
define Ls/Gist/History defaults on instance of Pry::Config::Default.
initialize Pry.config in Pry.reset_defaults(revisit later).

we don't want to depend on Pry.reset_defaults if we can avoid it.
`Pry.config` being a lazy-loaded value has benefits. I'll try to
revisit this later when the rest of the new work on Pry::Config
and Pry::Config::Default is finished.
stringify keys passed to Pry::Config#[] and Pry::Config#[]=.
read and write via Pry::Config#{[],[]=} in Pry::Config#method_missing.