use atomic APPEND write mode for writing source spaces to .catkin marker file

There is no significance to the order of the packages written to the `.catkin` file, so instead of reading/inserting/writing, this patch uses a single `file(APPEND ...)` command to modify the file. While not bullet-proof, this significantly decreases the probability that the problem described in #670 / catkin/catkin_tools#77 occurs.
This is not the package level. It is the source space of the workspace which might contain multiple packages. Therefore it should not mention "package" in here.