FORGE-949 Corrected validation plugin to emit descriptors with only default provider values.

MessageInterpolator, TraversableResolver and ConstraintValidatorFactory values are set only when provided by the user. This will ensure that the default values as supplied by the provider will be used unless the user overrides them. This would prevent issues involving changes in the internals of the BV providers, as was the case with HV-484.
FORGE-856 Ensure only public accessors and mutators are considered for property identitication.
FORGE-873 Overrides behavior of default HtmlWidgetBuilder for rendering h:selectOneMenu widgets.

The selectOneMenu widgets are generated with labels whenever these happen to be lookups on other entities. The behavior of depending on toString() is done away with, since this is not dependable. Additionally, due to Metawidget limitations, it is not possible to determine whether a toString() method is defined on an entity, and then adjust the generated widget. Hence, we now generate labels containing the primary keys of the other side of the relationship.

This is also done for the search results when a reference to another entity is displayed. This is also done when a link is displayed to another entity in the view screen.
FORGE-593 Added state verification to prevent monitor locking on multiple readers.

The available() method is used to detect if a blocking read() should be performed on the console inputstream. This prevents/reduces the possibility of the reader thread from blocking on the console during a Forge restart triggered by a plugin installation. Additionally, during shutdown of the console, the reader thread is interrupted should it have acquired a monitor on the console inputstream, thus allowing for a clean shutdown.
FORGE-996 Corrected the deletion logic for OneToOne bidi.

Also corrected the logic generated for the owning side of ManyToMany bidi.