Fixes for Parfait errors - mostly unhandled NULL pointer dereference and data type mismatch
Code cosmetics: Place copy_rules in nice shape.

Continuation of kukackajiri's work to provide fixes for errors pointed by
Parfait. The function copy_rules had an integer as return code but it was not
filed proper neither checked by its callers. This commit just adds sanity
checks and documentation for the copy_rules function. Marking were placed
on the copy_rules callers, but the return code is not handled yet.
For kukackajiri's work, see merge request: #612