Add new "ArrayOrNone" Trait type.

Resolves #218.
@corranwebster pointed out that this class mixes old-style and new-style; it should be consistent.