Generalising the RangeFacet (and associated parser/generator/test) to be optionally inclusive on each bound

Generalising the RangeFacet (and associated parser/generator/test) to be able to specify whether or not each bound is inclusive. The default behaviour remains the same (from is inclusive, to is exclusive). Issue #3660.

Have also requested a merge into master -- pull request #3665