Triple-state toggle directive for AngularJS