[4.2] Support  : Collection construct

Allows Collection Constructor to also get a Collection or an ArrayableInterface as an argument

Also add more make and construct tests
This is already the docblock for `diff`, `intersect` and `merge` methods.
I switch it back to `mixed` then