change =cut to comments for more stable syntax highlighting
remove noise and put diff in diag
show data source in message for context/clarify
fix issue when data sources shared a table name

Like _get_table_object, we need to look in the data source and if the object
wasn't found then in 'UR::DataSource::Meta' in order to mimic behavior
elsewhere.
filter invalid class names

Paths can have invalid package names so we should filter those out.
probably only supposed to die on error
fix '0 but true' being flagged as invalid integer

Instead of using regex to try to validate numbers just rely on Perl's
looks_like_number. If it looks like a number then let Perl cast it into one.

Perl does not consider '4 5' to be a number even though prior code would have.
Hopefully nobody depends on that bug.
refactor column property translations

- Bug Fix: UR data_type should be prefered over DB data_type.
- Moved @column_property_translations down closer to where it is used so we
  could take advantage of $ur_data_type and $ur_data_length.
- Changed conversion_sub arguments so we could inspect column.
update formatting of module writer

- Use separate lines for each key. It can be much longer vertically but is
  easier to read.
- Lost ability to maintain existing newlines.
- Indent based on depth not on section name length.
- The logic when handling table_and_column_names_are_upper_case was incorrect
  and was causing the column names to be written to the class header
  unnecessarily. Previously, if it had a data_source *and* should upper case
  *and* upper cased property name matched column name then it first clause would
  be false so the right half of the or would be evaluated which would then be
  true.

      if ( ( $params{'data_source'}
              and $params{'data_source'}->table_and_column_names_are_upper_case
              and $property->column_name ne uc($property->property_name)
           )
           or
           ( $property->column_name ne $property->property_name)
      ) {
improve the format of valid_values
whitespace
improve normalization of vendor data type

- Move upper casing into new normalization method.
- Add truncation of (\d+)$, e.g. TIMESTAMP(9).
cleanup attributes_have output to match other sections
support properties declared by type_has
refactor multiple arrayref printing into pprint_arrayref
add support for array ref values to where operators
wrap doc strings in q() when needed
do not assume a specified class has a data_source
class initializer should die if a property has id_by and reverse_as
ModuleWriter should not create id_by fields for reverse_as properties