PLAT-6802 - Enhance performance of MasterHolidaySource

Enhance performance by avoiding cloning in lookup method.

* Old code cloned request object for every lookup. New code only clones when necessary.
* Add faster version of weekend check.
* Call weekend check in advance of creating object in common calls.
* Use set rather than binary search.
This matches the existing behaviour where only the cache=true checks it. This will protect against non-cached implementations that have different weekend rules.