Better errors

For cases where users get the macros in the wrong order.

I assume it does not cause errors to call e.g. add_message_files twice.

The only problem case left is if the user forgets to call generate_messages(). I though about checking that in catkin_package(), but not sure whether that's a good idea.

I think the following could maybe be better: make the xyz_genfoo macros depend on a target xyz_generation_check, that is initialised with  message(FATAL_ERROR "generate_messages not called"). 

And in generate_messages(), the target is then overwritten by No-op. What do you think?