improve broadcast-compatible to also coerce to correct matrix type
docstrings
nil broadcasting fix and test