When deserializing a type that has a property of string array/list, where the last element is null, the last element is skipped

Found pretty much the same issue as was fixed in https://github.com/ServiceStack/ServiceStack.Text/pull/111, however this time the last null issue was happening on type properties that were list/arrays of string.

The fix is the same as pull 111, just this time its in the optimised ParseStringList(string value) method.

Added unit tests for properties that have both array and lists of String, as well as a precautionary one for List<int> properties (which weren't affected by this issue).