Added bindingDelegate and PropertyBinding

bind() can now bind to a Property.Viewer, Item.Viewer and FieldGroup using a general mechanism based on an attribute delegate