api rework, no allocations, no special case logic for flat arrays
readme tweaks
make X first argument
Merge pull request #4 from substack/no-allocate

api rework, no allocations, no special case logic for flat arrays