apply custom part marking/validation scripts before running the rest of the constructor

This is important when loading a part, because its mark method is called before the constructor finishes. (Maybe that shouldn't be the case)
Custom scripts are now attached at the start of the main part constructor.