Move trait Dimension, Shrink to src/dimension.rs
Rename .shape/.shape_mut on Dimension to .slice/.slice_mut
Array: .sum() should be for A: Add and fix Ring doc
Refactor Shrink, rename it to trait RemoveAxis

Use macro impl to get rid of the need for Default trait.
Documentation updates. Update assertion/"doctest" style in example code.
Array: Remove from_slice(s) in favour of arr1, arr2.
Array: separate out uses of broadcast iter, unify fail message

The code size cost was pretty big for expanding a fail!() in each
arithmetic operation impl. bench_std_add performance does actually increase by
10% with this change.
Array: use dimension by ref where possible

Avoid some unnecessary .clone()s.
Fix bugs for Arrays with zero size