* Change DataReader::read()'s signature to fix warning C4267
This CL fixes lots of warning "C4267: 'initializing': conversion from
'size_t' to 'int'" in our codebase by matching DataReader::read()'s
signature to fread().
* Fix warnings C4244 and C4267 in tools/ncnnoptimize.cpp
C4244: 'initializing': conversion from 'double' to 'float',
possible loss of data
C4267: 'initializing': conversion from 'size_t' to 'int',
possible loss of data
* Fix warning C4244 in src\layer\selu.cpp
C4244: '=': conversion from 'double' to 'float', possible loss of data
* Fix warning C4244 in src\layer\cast.cpp
C4244: '=': conversion from 'double' to 'float', possible loss of data
C4244: 'return': conversion from 'float' to 'signed char', possible loss of data
* Fix warning C4244 in src\layer\psroipooling.cpp
C4244: 'initializing': conversion from 'double' to 'float',
possible loss of data
C4244: 'initializing': conversion from 'double' to 'int',
possible loss of data
* [WIP] add reduce op support for onnx
* extend reduction to support 1,2-dim reduction and keepdims
* fix compile error
* split type to 3 flags && split keepdims to another function