@ModelAttribute Flattening Improvements

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