Handle describe options better

Allow null, and normalize describe/format options.
We use `memcpy` for this.