Add CASSERT macro (#223)

- Better error message, with file, line and statement message
- Halt immediately under MSVC

Now to use it everywhere