Implemented Number destructor. Defined numeric tower.

Number is a base class for the numeric tower. It contains an Exactness protected member, so that all concrete numbers can keep track of their exactness. The destructor was implemented because it is required now that Number is an abstract base class that has a pure virtual destructor. Number implements Object::getType, but it leaves getNumericalType unimplemented, which must be taken care of by the concrete Number derivative that inherits this calss.
Added objects.h for all Scheme objects.

Since many modules will operate on all of the Scheme object types, objects.h has been added, which simply includes all of the Scheme object headers. This prevents modules from being tempted to include the interface scheme.h, which will include everything that should be exposed to the host C++ application.
Added numeric tower classes.

Each type in the numeric tower is implemented as a separate object. Free functions will be defined which operate on different combinations of numeric types in order to make mathematical operations between heterogenous types execute as smoothly as possible. Each type in the numeric tower directly inherits that of the type above it. The inheritance follows the format Number->Complex->Real->Rational->Integer. Each object is-a type of those types that exist above it.