Deal with spaces in patch descriptions

To be sure, I also allowed "Compile time options" to have spaces
Using \0 as a new separator seems a sane choice, as the values returned
from internal functions are pure C strings, so they end with \0

patches can have spaces:
#          $got->{build}{patches}[0] = 'SAVEARGV0'
#     $expected->{build}{patches}[0] = 'SAVEARGV0 - disable magic open in <ARGV>'
#          $got->{build}{patches}[0] = 'ActivePerl'
#     $expected->{build}{patches}[0] = 'ActivePerl Build 1602 [296513]'
#          $got->{build}{patches}[0] = 'DEBPKG:debian/arm_thread_stress_timeout'
#     $expected->{build}{patches}[0] = 'DEBPKG:debian/arm_thread_stress_timeout - http://bugs.debian.org/501970 Raise the timeout of ext/threads/shared/t/stress.t to accommodate slower build hosts'
#          $got->{build}{patches}[0] = 'Bug#55162'
#     $expected->{build}{patches}[0] = 'Bug#55162 File::Spec::case_tolerant performance'