BUG/API: Fix stata io to deal with wrong data types and missing values (GH6335)

BUG: Changes types used in packing structs

Corrected incorrect data type conversion between pandas and Stata

Remove unnecessary, potentially precision degrading cast to Series when writing data
Added function to cast columns from NumPy data types to Stata data types
Corrected tests for correct Stata datatypes
Fixed formatting in comparison after casting

Added docstring for new function and warning class

BUG: Fixes and tests for extreme values in all data types

The extreme values of float and double (Stata, pandas eqiv: float 32 and
float64) were not correct.  This resulted in incorrect truncation. The
handling of missing values have been improved and code to convert missing
values in any format has been added.  The improvement differentiated between
valid ranges for data and missing values.

Additional issues were found when handling missing Dates, where missing Dates
(NaT) were converted to non-missing dates when written.

A test has been added for extreme numeric values as well as missing values.

Fixed legacy date issue with format 114 files
Added test for 114 files

Added format 114 (Stata 9/10/11) data file

Add test for Stata data with file format 114

Added additional data files for testing alternative Stata file formats

Added expected result to test
Renamed Stata data files to include file format

Types used for integer conversion where always half the size they should be.
Produced a bug when exporting data tables with long integer data (np.int64).

Added test for integer conversion bug

Added test for incorrect integer conversion from int16, int32 and int64

Added additional data files for testing alternative Stata file formats

Added expected result to test
Renamed Stata data files to include file format

Disabled the big endian skips