mimetype can't be None and always use filename if available

I tried to eliminate the possibility of the mimetype being none, since it isn't a correct mimetype and will raise an error every time you try to access the mimetype of this file.
Also it is now possible to use the filename if the value is a string. So we can find the mimetype based on the extension and not only with the magic bytes so we can distinguish more contenttypes.