nouveau: Add more flexible command interface
nouveau: Use inline commands when possible
nouveau: Combine nvc0_2d_{src,dst} into nvc0_2d_use_buffer
nouveau: Set operation once in 2d_initialize

Also, use SRCCOPY_AND instead of SRCCOPY in case the alpha bit isn't
set.
nouveau: Update sizes for ensure_space
nouveau: Implement text rendering
nouveau: Make nvc0_format inline
nouveau: Add explanation for why map only works with non-tiled buffers
nouveau: Use definitions from rnndb headers
Add flags argument to create_{buffer,surface}

This adds an additional argument to the create_{buffer,surface}. The
upper 16 bits of this number are global flags specified in wld.h, and
the lower 16 bits are implementation-specific flags.

Some drivers, like nouveau, need extra information about intended use
for a buffer in order to create it with the correct settings.
Only use upper 8 bits for implementation in object types

While I'm breaking ABI, might as well do this as well.
nouveau: Keep track of chipset architecture