[oneDNN] Relaxed constraints for control input/output check in the pattern matcher
**Addressing the Corner Case (shown below)**: 
When the `Const` that is to be fused into `LeakyRelu` has an incoming control dependency. 

- While fusing `LeakyRelu`, the `Const` node is removed as it becomes an attribute of `LeakyRelu` and thus the control dependency will go away, which is incorrect. 
- Therefore, we manually add an incoming control edge to `LeakyRelu` in that case to preserve the control dependencies in the graph. 
- This is a special case only for `LeakyRelu` as it removes the `Const` node and uses its value as an attribute.

![corner_case](https://github.com/intel-innersource/frameworks.ai.tensorflow.private-tensorflow/assets/87341429/76e1e0fa-f401-4aee-871a-cebf905275b4)

The following image shows the manually added control edge:

![corner_case_1](https://github.com/intel-innersource/frameworks.ai.tensorflow.private-tensorflow/assets/87341429/2c3a5aef-c707-4149-82c4-8f6d5d4a3ab0)
 Hi @ezhulenev Can you please review this PR ? Thank you! @cantonios I fixed the image link, should be visible now.

We initially saw some fusions not happening for GAN model suite (GAN, CGAN, infoGAN, [DRAGAN](https://github.com/kodalinaveen3/DRAGAN), etc.). With this PR, we saw 5-6% improvement for these models on Intel 4th Gen Xeon (SPR) with `bfloat16` precision. @cantonios let me know if any more changes are needed from my end. @cantonios Can you check now to see if it still fails on Windows?
One of the steps in the existing approach for checking if a pattern can be fused is to check if there are any control inputs or outputs within the pattern and simply reject the pattern if that is the case. This PR aims to relax that check allowing more patterns to fuse in the remapper.

**THE IDEA**
- If there are input control dependencies to a node in the pattern **AND** the status of the node after the fusion is _Remain_, then the input control dependency can still be an input to the fusion and therefore the fusion must be allowed.
- Similarly, if there are output control dependencies of a node in the pattern **AND** the status of the node after the fusion is NOT _Remove_, then the output control dependency can still be an output of the fusion and therefore the fusion must be allowed.


**EXAMPLE**

![229937297-08fa7d2c-d0d3-44d7-a7bc-182b042238f8 (1)](https://github.com/tensorflow/tensorflow/assets/87341429/7e341929-34eb-4bec-8d13-ccbf4c3c0f72)


In the snapshot of the pattern above, we want to fuse the _Mul-Maximum_ pattern into _LeakyRelu_. The inputs to **Mul** are _Const_ (not in the snapshot) and _Identity_, and the inputs to **Maximum** are _Mul_ and _Identity_. 

This PR aims to allow the fusion in the following cases:
- There is an input control dependency on the Identity node, but it should remain unaffected even if the fusion happens.
- Hypothetically, if there were an outgoing control edge from the Maximum node, then it should still allow the fusion to happen and the fused node should have the outgoing control edge.