cleanup_empty_projects: add new configuration option

Normally, if a submit request is accepted and results in cleaning up
the last package in a branched project, the branched project is
deleted too. This is annoying if the branched project is a long-running
branch (e.g. for a developer in a small team) and has been reconfigured,
for instance to turn on publishing in installations where branches do
not normally have publishing.

Bug: https://github.com/openSUSE/open-build-service/issues/596
disable_publish_for_branches: new configuration option

OBS currently disables publishing for any new branch in order to avoid
using disk space and bandwidth to carry out publishing. For small private
installations, it can make sense to avoid that, and inherit the publish
flags from the parent project instead.

Bug: https://github.com/openSUSE/open-build-service/issues/596
Split out branch_copy_flags method to placate code complexity check
Add a regression test for disable_publish_for_branches
Add a regression test for cleanup_empty_projects