Convert fixed length arrays to dynamic

This pull request fixes a bug when loading a scene after changing a coshader array parameter from fixed length to variable length. The previous code worked only when the inputs connections were continous, but failed to keep any connections following a gap.

This also adds a new Serialiser::postScript() method which is used by the Shader and ParameterisedHolder serialisations to make sure the load/upgrade step is performed at the very end of script loading. Although not necessary for this bug fix, it should be a much better way of doing things for the future, rather than trying to upgrade things in the middle of loading, before the connections are made.