Created virtual shutdown() function

Similar to the init() function, called by World::run() once if
World::State is WORLD_SHUTDOWN.
Added shutdown() and systemsShutdown() to headers

shutdown() is a virtual function, so no need for anything more there.
systemsShutdown() is the same as systemsUpdate(), so just need to dupe it.
Added systemsShutdown()

Just a basic copy of systemsUpdate()
Updated test program Systems to fit new format.

Due to changes in the CLD-ECS Framework, the Systems in ECS-Test had to be
tweaked appropriately. The program now compiles and runs, but there's a
memory leak when the program completes. :(
Updated System and World with new way to connect Library to System

Got rid of the old way of passing a Library through the init() function of a System; it's now
done as the System is added to the list of systems in World via linkLibrary().

shutdown() was also added to Systems and systemsShutdown() to World.
Added systemsShutdown() to main for testing

Just included it because it's a thing in World now.
Added extra flag for debugging

The -g flag allows for exact line numbers to show during debug/Valgrind testing
Fixed linkLibrary() argument passing

The stupid referencing/dereferencing shenanigans were still acting up,
so I think I finally fixed how it's handled.

There's also a small change to a cerr statement, namely for a system
shutdown thing.
Removed all smart pointers

In a sub-branch now. Removing smart pointers because:
-They were complicating things and causing weird memory double frees
-The framework, if used correctly, should be able to do it's own garbage
 collection relatively easily. Just need a bit of loop-age and some
 delete()s in the destructors for World, System, and Library
Successfully removed smart pointers and implemented proper garbage collection

Success!!! Libraries, Systems and Worlds now clean up after themselves.
Next on the to-do is to fix up removeComponent and removeSystem so they
actually free up dynamic memory.
Added garbage collection to removeComponent, destroySystem and removeSystem

Basic removal/destruction functions didn't clear the memory they were supposed to
but now they do!