javaslang.collection.List is immutable
faster size function, prevents possibility of stack overflow for big
lists
No need to hide constructor
Object equality
Refactoring / improved readability
Added test for List.get