Convert the names/types internal fields of tuple and struct to use nd::array

This was a fairly invasive change, and required a lot of updates
throughout to get back to 100% tests succeeding