BUG: convert in-memory fileupload to StringIO

IF uploaded file > 2MB (default limit), it is stored in memory. Otherwise as file in temp directory.

When using InMemoryUploadFile object, the buffer is converted to StringIO to make it compatible with `zipfile` module. TypeError is raised otherwise [observed on *inx system with Apache, WSGI]

Note:

1. Upload file when stored as file in temp directory, is not "closed" if validated. It is to be done when the file is stored.

2. Uncompressed ZIP file size is validated first - Though, uncompressed zip size is done later again.