order of exceptions in array_to_datetime
First, cleans things up by moving all the seen_datetime and seen_integer variables to the tops of their respective blocks.

Mainly splits the `try:` block for `string_to_dts` up into two pieces based on the two lines in that block that _could_ raise and handles errors more specfically.