Reformat code before fixing #303
Prevented ArrayOutOfBoundsException and added logging to help diagnose fail condition

fixes #303
Added test to verify #283

Closes #283 - not reproducible
Fixed allowableValues not getting set for enum

Fixed bug where the allowableValues were not getting
set on enums when the enum property in a container
object had an ApiParam annotation. Apparently, if you
declare an ApiParam and don’t put any configuration in
for the allowableValues, the allowableValues will be a
blank String instead of null. The bug was that the code
was checking for a null allowableValues but not for a
blank String.
Prefer enum types over swagger annotations

- Also general cleanup
Reformatted code to normalize spacing
Flatten ModelAttribute Bean Properties as Params

When complex objects marked with @ModelAttribute in a controller method
are flattened into individual parameters:
1) Only consider properties that have a getter and setter.
This makes it easy for someone to exclude any parameter
that is not supposed to be set by a request param or has
a derived value.
2) Include properties from parent objects so that we
don’t alienate coders who have form beans with an
inheritance hierarchy