Fix fetchColumn not caching

Column cache wasn't working because the emptied flag is only set
when fetch no longer returns a row. With fetch column the code
only calls fetch once and so emptied flag never got set.

Created two test cases, one to test fetchColumn, and one to test 
that the return value is false if the data doesn't get saved in the cache.