Setup unit testing for stack class.

Using the googletest unit testing framework basic unit tests for the templatized stack class were created. Make rules were added to build the test and additional compiler warnings were added for completeness.
Makefile changes for unit tests.

The makefile changes weren't included in the last commit. Additionally, minor changes to the stack.pop() unit test were made.
Fixed bug in stack.push() and a unit test

A misplaced empty check in push() was preventing items from being added to the stack, which killed all the unit tests. Checking for an empty stack is unnecessary in the push()  function and it was removed.

An empty check in pop()’s unit test was performed in the wrong place. Updated the check to look for a non-empty stack and the expected stack’s size.