Cuploadedfile subclass patch

Added the ability to subclass the CUploadedFile class by adding a static method to get hold of the classname.  If this method is overloaded in the subclass then the the static methods getInstance etc will return the subclass instead of CUploadedFile