feat: complete first stage of linking-hell migration.
Specifically:

1. Break current build (just bringing OSS closer to how things are built internally): Remove `tf_binary_additional_srcs()` and `tf_binary_additional_data_deps()` macros. 
2. Remove `tf_binary_pybind_deps()` macros. It will affect following macros: `tf_python_pybind_extension_opensource()`
3. Remove `cc_binary()` inside `tf_kernel_library()` as it is not used (around 500 targets) Clean up most common header-only targets:
4. Remove cc_header_only_library() replace its usage with actual deps (no need to depend on header-only) Remove header-only target creation (and its aliasing) in `tf_proto_library()` macro Migrate to normal `cc_proto_library()` rule, same as used in `protobuf 3.22.x+` - this will unblock updating protobuf to further versions 
5. Remove `check_deps()` targets. Are they still needed, would they make sense in new architecture? 
6. Remove creation of `libtensorflow_framework` and `libtensorflow_cc` targets and all the stuff facilitating it.