Dynamic tabbed content for AngularJS, with optional persistence.