Refactor pure-strategy Nash equilibrium finder into generic algorithm pattern.

This refactors the pure-strategy Nash equilibrium solvers into a framework
of classes for generic representation of Nash equilibrium solvers.

* A new module libgambit/nash.(cc,h) is provided, with base classes for
  Nash equilibrium solver algorithms and resulting profile printers.
* An implementation of solving by subgames for extensive games is implemented
  in libgambit/nash.(cc,h).  This is just the same implementation currently
  in libgambit/subgame.(cc,h), packaged into a class.  The old subgame.(cc,h)
  is temporariliy being retained in parallel, until the other calling code
  which uses it can be rewritten to the new framework; it is otherwise
  deprecated.
* A simple implementation of a reference-counted pointer, shared_ptr,
  has been added, which is used in the solvers for handing dynamically
  allocated classes that handle subgame-solving and printing strategies.
  This is designed to be compatible with Boost's shared_ptr and/or the
  C++11 std::shared_ptr for future migration.  New code is encouraged to
  use this where appropriate.