REQS-306 - FX Swap nodes for curve calibration

Adds in fx swap nodes for use in curve configuration and calibration.

The new FX swap nodes are near identical to the FX Forward nodes and have tries to reuse code between them where possible. A subsequent PR will address usage of the new classes.
Some Javadoc saying what the validation is actually checking.