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. Silimar to ````DyeColors.valueOf(String)````

**PR Breakdown:**
Added the ````Arts.valueOf()```` and ````ArtFactory.getFromName(String)```` method
Added some missing javadocs (````Art___```` only).
Made classes final that cannot be extended. (I can remove that if this is not disired)