Stopped representing duplicate endpoints as SplinePlug::pointPlugs().

Storing them duplicated made it very hard for scripts and the ui to keep things shipshape. The multiplicity of the endpoints is now calculated by SplinePlug::setValue() and stored on a new endPointMultiplicity plug. SplinePlug::getValue() then uses the value stored to restore the duplicate endpoints. This allows us to correctly round-trip values through the SplinePlug while maintaining a more manageable internal representation.