cifs: Externalize common code to base_publish_over.

The various Publish Over... plugins offer a similar configuration
structure.

Externalizing that knowledge will allow reuse between modules.

Change-Id: I8dd7f62713da013354c656e9437522210e2c39f9
Reviewed-on: https://review.openstack.org/23862
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
ftp: Refactor using base_publish_over.

The subtlety is that Publish Over FTP offers additional options compared
to the CIFS variant. This is done by customizing the XML tree created by
base_publish_over.

Change-Id: I5ff3614781cb52a47bf9816c2326d3fe9a96a47f
Reviewed-on: https://review.openstack.org/23863
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins