'knc.h' merge with 'ispc_knc_backend.h'

The modified version of 'knc.h' produces 19 runfails and 662 compfails (on ISPC test set), while 'ispc_knc_backend.h' produces 79 runfails and 682 compfails. 'knc.h' seems to have no regression comparing to 'ispc_knc_backend.h'. 

However, if '__vec16_i1' is properly defined (i.e if the version with constructor is used) the 'knc.h' has 17 runfails and 411 compfails and has a regression (several compfails not present in 'ispc_knc_backend.h') because of undefined overload of '__cast_uitofp' for '__vec16_i1'.

Please also take into account, that 64 bit gathers/scatters were changed to pass into icpc gather/scatter intrinsics 32 bit signed offsets. The previous version passed in an unsigned type, which sometimes produced segfaults.