Added valueOf() method to Arts.

**The issue**
Currently there is a ````getName()```` method in ````Art````, but for a given name you cannot get the  	associated ````Art``. So i added the ````Arts.valueOf()```` method along with some javadocs.

**PR Breakdown:**
Added the ````Arts.valueOf()```` and ````ArtFactory.getFromName(String)```` method
Added some missing javadocs.
Made classes final that cannot be extended. (I can remove that if this is not disired)