Use collection interfaces instead of concrete types in generated Java classes
We're using 0.11-SNAPSHOT with serialization functionality.

I have the following field in a ksy:
```ksy
  - id: ecb_addresses
    doc: User ECB address list
    type: u4
    repeat: expr
    repeat-expr: ecb_count
```
Which generates the following field in its associated Java class:
```java
private ArrayList<Long> ecbAddresses;
```

Is there a reason for using the concrete `java.util.ArrayList` in the generated class instead of the `java.util.List` interface (short of the `_read()` method's initialization of said field)?

When setting this field, I'd like to be able to pass it any `java.util.List` and not just an explicit `java.util.ArrayList`.