Optional xnnpack feature relies on weak symbols which are unavailable on Windows
@georgthegreat,
Could you please elaborate about your Feature. Also, please specify the Use Cases for this feature. Thank you! We operate a monorepo with single tflite configuration available to the end users (similar to Piper / build system is similar to Bazel).
Certain users would like to use tflite without xnnpack delegate, while other would like to continue using it.
At the time switching xnnpack on and off is available by the means of weak linker symbol which might be overrided during link time.

As weak symbols are not supported on Windows, we can not use current approach in cross-platform software.
I have managed to implement the xnnpack switch by forcing every user of tflite to add explicit dependency on either `delegates/xnnpack` or (added by myself) `delegates/xnnpack_disabled`.

I would like to upstream this feature, but I would like to get OK from Google in advance. @alankelly, could you, please, take a look?

 ### Issue Type

Build/Install

### Have you reproduced the bug with TF nightly?

Yes

### Tensorflow Version

2.4

### Current Behaviour?

At the time tflite comes with optional xnnpack feature which relies on TFLITE_ATTRIBUTE_WEAK attribute applied to a delegate function.

As there are no weak symbols on Windows, this feature can not be used universally (i. e. independent from target platform).

I suggest switching this feature on / off in configure time (when build with CMake) or via explicit choosing of option (when build with Bazel). This will force every client to explicitly add a dependency on either xnnpack_enabled or xnnpack_disabled library, just in the same way as with other delegates (i. e. nnapi).

What do you think?