Fix bug in PropertyPlaceholder and add unit tests

This pull request includes the following changes:
* Fix bug in `PropertyPlaceholder` when prefix and suffix have same length or suffix is longer than prefix
* Add unit tests for the `PropertyPlaceholder` class. `testNestedSameLengthPrefixSuffix` and `testNestedShorterPrefix` failed before this bug fix.