MSON Signature parsing foundation

This pull request adds a `SignatureSectionProcessor` class which can be inherited by certain section processor classes if their signatures follow either of the following 3 formats

- Identifier [`:` Values] [`(` Attributes `)`] [`-` Content]
- Values [`(` Attributes `)`] [`-` Content]
- `(` Attributes `)` [`-` Content]

**Note**: Square brackets mean they are optional

`SignatureSectionProcessor` filled up the `processSignature` with default logic which can be used by the super sections. The super section processor should have a method `signatueTraits` which should return a `SignatureTrait` data structure representing the format of the signature. Similarly, it should have a `finalizeSignature` which takes `Signature` data structure containing the parsed signature data by the `parseSignature`.

The `parseSignature` is the main function which parses the signature according to the given format. It further divides the logic into 3 other functions, `parseSignatureIdentifier` and `parseSignatureValues`, `parseSignatureAttributes`.

We also add a helper function `RetrieveEscaped` to `StringUtility.h` which retrieves the escaped string with the given escape character while respecting any nested escape levels.
Please make sure it is clear this parameter is being changed during the process of Signature Identifier parsing