Observers for descriptor systems