CMake

Can now compile with catch with no errors, although there are errors within the
test cases. Also added a check in the generate_headers.py file to see if the
headers have already been generated (this is a proposal and can be removed)
because it's time consuming when there is no changes to those files. the change
is fairly dumb (check if file .JSON_done exists) and doesn't consider the
modification time of the files.