1. Вы хотите загрузить данные я так понимаю? Для этого нужно использовать сервис
$http.
2. Конечно. Вариантов много, например обработать данные в контроллере и по значению gender добавлять в поле genderImage то что нужно. Можно прямо в шаблоне написать
ng-src={{'/images/' + gender + '.jpg'}}
3. Как минимум убрать повторяющиеся куски кода из шаблона. Шапку таблицы можно сделать через ng-repeat, имея в контроллере список полей + пару функций для установки текущей сортировки. Раз уж используете ангуляр 1.5+ - сделайте
компонент вместо обычного контроллера. Используйте одноразовые биндинги для данных, это уменьшит количество watcherов. После этого можете попробовать поработать с routerом, сделайте возможность перехода на страницу детальной информации о человеке по клику на таблицу.