Clean up C++ implementation of pragma simd to use shared C/C++ type
checking.

Change error messages to match C front-end when possible.

Misc fixes.