PBX project file parser

Currently only the top-level definitions and the object
ranges of a PBX file are parsed.
PBX project file Question/Answer
Fix scanning of strings and arrays

Two issues:

* Only / or * was expected after an initial /.  Strings in
  PBX can begin with /.

* The scanner was not skipping the closing ) for arrays.
Tests for PBX scanner
Assert CRTP subclasses override methods
Scan quoted strings

Also test the scanner