Feat(plugins): basic tools for adding plugins

Just enough to make the ngHint plugin