null: Move the 'null' namespace to the 'detail' namespace

Code specific to NULL-architecture was never intended to be public (it's
not useful anyway and exposes too many implementation details). Moving
it to the detail namespace clarifies the intent.
null: Do not use detail::mem_block

The elements of a vector can be accessed directly in NULL arch.
types: Allow conversions between masks with the same element size
blend: Add missing implementations of blend for certain expression types