Controllability of descriptor systems