Improve ability to detect the format of a STL file

For some reason, few binary STL files will have larger size than the value calculated based on metadata, causing them to be recognized as ASCII ones. To detect those files, a byte-by-byte check loop is added, it tries to find a non-ASCII character byte, if any is found, this file will be recognized as binary format.

The additional checking process slightly affected the loading time of ASCII files, for example a 78MB ASCII file will need 3 more seconds to go through the loop using a computer manufactured in 2012. However most mesh in this size will be encoded in binary format, so large ASCII file is uncommon.