Make column addressing more robust and documente it better

In case of columns that don't actually exist are addressed based on their name, there will be an `ArrayIndexOutOfBoundsException`. This makes sure that such cases are handled with an `NoSuchElementException` instead. Furthermore it makes the documentation of `Example21` more extensive.