Angular directive, with recursive support for multiple layers of checkboxes.