Before, custom_width and custom_height widgets were virtual widgets that were used to generate an equivalent force_size value on serialization. This logic has been moved to the python side, but is largely unchanged for simplicity. This allows for custom_width and custom_height to be converted to an input and set by output from python code which is not known before execution. resolves #119