vocab widget: delegate validation to request handler, not the plugin proper
Vocab widget: new 'advanced' mode added.

Advanced mode doesn't create any UI elements, provide user
interaction or anything like that. Rather, it's a "base API" approach,
exposing search and narrow routines whose responses can be obtained
by binding to 'search.avw' and 'narrow.avw' events, respectively.

You can also change settings when in advanced mode.

Example usage:

<script type="text/javascript">
$(document).ready(function() {
  var elem = $("#my-elem");
  //set up widget using default settings
  var widget = elem.ands_vocab_widget({mode:'advanced'});

  //bind to search responses ('avw' namespace = ands vocab widget)
  elem.on('search.avw', function(event, data) {
    //data: {count, items[], message, status}
  });
  //bind to narrow responses
  elem.on('narrow.avw', function(event, data) {
    //data: {count, items[], message, status}
  });
  //error handler
  elem.on('error.avw', function(event, xhr) {
    ...
  });

  //change some settings
  widget.ands_vocab_widget('cache', false); //disable caching
  widget.ands_vocab_widget('repository', 'rifcs'); //change repository

  //fire a search (anyContains); this will fire a 'search.avw' event
  widget.ands_vocab_widget('search', 'MATH');

  //fire a narrow (uri); this will fire a 'narrow.avw' event
  widget.ands_vocab_widget('narrow',
                           'http://purl.org/au-research/vocabulary/RIFCS/1.4/RIFCSIdentifierType');
}
</script>

Documentation and demonstration not yet updated...