Refactor tag selection into its own directive/component

State passing between the tag selector to other controller is done via
the AppState service.