Refactor CLI factories

Refactor factories to reduce duplicated code regarding merging the
default options with provided options.

Factories now returns the data returned by the CLI object create method
instead of updating the already provided options. This avoid false
positives for options that have been provided but are not listed by the
info output.

Also, update content host factory
Is there any particular reason we're using `update_dictionary` instead of the `{}.update` method from the standard library?