Updated pact_string_new, pact_string_substr and added pact_string_new_length

Made a few style adjustments as well
Updated pact_string_compare* functions to handle nulls
Removed pact_string_compare_cstr_length (if you want to compare with nulls use two pact_Strings)
Adjusted pact_string_find, pact_string_find_after to work with nulls

Also corrected length bug in pact_string_new, pact_string_new_length
Fixed pact_string_concat to work with nulls
Fixed pact_string_substr and pact_string_split to work with nulls
Fixed bug in pact_string_new, pact_string_new_length if null was passed in
Big giant commit (should have done smaller ones)

Fixing unit tests
Fixed some more string and linked list stuff
Strings are now only mostly immutable for ease of use
Can now actually get data from linked list iteration
Everything builds but is untested