Add Role::Array::Immutable

Start of a 2.0 reorg.

I'd like to be able to support immutable typed arrays / hashes.
This moves immutable array behavior to Role::Array::Immutable and turns
Array::Immutable into an exporting consumer similar to Array.

(POD still needs fixing.)

TODO:
  * Arrays:
    - Role::WithJunctions -> Role::Array::WithJunctions
    - Array::Typed -> Role::Array::Typed
      (and replaced with exporting consumer)
    - Add Array::Immutable::Typed (and immarray_of)
  * Hashes:
    - Hash::Typed -> Role::Hash::Typed
    - Add Role::Hash::Immutable & Hash::Immutable consumer
    - Add Hash::Immutable::Typed
  * t/:
    - Reorganize tests into smaller self-contained units
immarray; die with better exception msg
POD for immarray shuffle
Role::WithJunctions -> Role::Array::WithJunctions
Finish up WithJunctions move
add namespace::clean dep
Role::Array::Immutable requires new
Add Role::Array::Typed, reshuffle
add Array::Immutable::Typed (missing tests)
POD for immarray_of
add immarray_of to WithUtils exporter
Add Hash::Immutable, Role::Hash::Immutable
t/; add new import tests
begin t/ reshuffle
Start splitting out array tests
new sort tests
further t/01_array expansion
finish up basic array test reshuffle
Reshuffle basic hash tests
Move junction/immutable/typed tests