Redmine/6119

Forgive any ignorance on my part concerning deep implmenentation details but... what about adding something like the following to the parser?

This would still allow `bundlesequence` to contain any number of `cf_null` like in @markburgess's example but would also account for @ediosyncratic's concern and explicity forbid usage of `cf_null` as a valid bundleid. @vohi's acceptance test / changes continue to work as intented; since `cf_null` is skipped in `KeepPromiseBundles()'s` handling of the `bundlesequence`. The only thing left would be to write a trivial acceptance test which checks that using `cf_null` as a bundle identifier indeed causes the parser to bail.

```
diff --git a/libpromises/cf3parse.y b/libpromises/cf3parse.y
index 79954cf..2a4017c 100644
--- a/libpromises/cf3parse.y
+++ b/libpromises/cf3parse.y
@@ -136,6 +136,10 @@ bundletype_values:     typeid
 bundleid:              bundleid_values
                        {
                           ParserDebug("\tP:bundle:%s:%s\n", P.blocktype, P.blockid);
+                          if (strcmp(P.blockid, CF_NULL_VALUE) == 0)
+                          {
+                              ParseError("Invalid bundle id, '%s' is a reserved term", CF_NULL_VALUE);
+                          }
                           CURRENT_BLOCKID_LINE = P.line_no;
                        }
```