Updated code for improved GCC and C++98 compatability.

This second update includes further fixes for GCC. Noteably,
C++11 types trait support was added for when the configuration
process detects the lack of a fully compliant types_trait header.

Also updated list/slist erase/clear/unlink functions to no longer
have a _deallocated suffix. Now we just use sfinae to allow us
to overload the functions alongside the templated versions taking
a recycle functor.