feat #405 Error tool tip enhancement

Currently the logic for the error tool tip is contained within
aria.widgets.form.Input, the aim of this enhancement is to share code
efficiently between multiple types of widgets. Specifically for the
requirement of this feature, this means making the code for the error tool
tip not only available for "Input" type widgets, but also for "Action"
type widgets.

In addition, it must also be possible from within a template to have a new
widget property called errorTipPosition that will be used as the preferred
position for the error tool tip, if there is not enough available space
the framework will automatically calculate the best position for the error
tool tip. The property will be added for both "Input" type widgets and
also "Action" type widgets.

Close #405