[4.0] IRGen: Fix linkage for shared declarations
They need external linkage not linkonce_odr which can only be used by defintions
not declarations.
This got exposed by clang imported protocol witness table declarations.
They get assigned shared linkage since they are potentially not unique.
rdar://26563441
(cherry picked from commit 3d34fb3b0791e790086e3ac44799324189fe525a)