mb_internal_encoding = UTF8!
Fix test that was using null data

As this was using null data and I am currently
working on catching API errors this is a BAD TEST
as null data response from the api would be
a form of error...
Implement and test APiUsageExceptions
Lock cache file when writing

This should stop any conflicts
Up to this point every now and again the cache
seems to have ad trouble writing to the file
Implement CacheException

This is far better than an IO exception...
Add check for 'badtoken' and impove expandability
Login tests uses our datatestsets correctly
Add some more standard error tests

Also we now dynamically load this data into tests,
no reason to update the test for api exceptions,
just add the data to the directory..

It would be great to be able to do this for some
of the other types of tests also!