removed model related code and added method to attach plugins - like binding the control to a model
apply message type classes to the message element if no container is provided
switched .getState() and .setState() for .isValid() and .setValid() methods since the only remaining state that hasn't been moved to separate methods is valid/invalid. Also changed the control is-valid/invalid class to apply to the control without waiting for the message transition to finish
removed the s from the events option and added a click event for the TextInputView so the input views trigger the same events, and updated some doco