Knc backend merge

- added debug code to 'knc-i1x16.h' (this has no performance or stability impact)
- fixed 64-bit multiplication (__vec16_i64 __mul(__vec16_i64 a, __vec16_i64 b)). The previous version handled input values incorrectly in some cases which was producing runfails.
- fixed (l/a)sh(r/l) functions (shifts) for 64 bit vectors. Those were not able to handle shift values greater than 32
- implemented several cast_(s/z)ext functions
- fixed reduce_add_i8/16 implementations. (The previous also runfailed)