Fixed memory leak in emac_esp_new_dma function.
Polished ESP EMAC cache management.
Added emac_periph definitions based on SoC features and improved(generalized) ESP EMAC GPIO
initialization.
Added ESP EMAC GPIO reservation.
Added check for frame error condition indicated by EMAC DMA and created a target test.
This updates the minimal supported version of CMake to 3.16, which in turn enables us to use more CMake features and have a cleaner build system.
This is the version that provides most new features and also the one we use in our latest docker image for CI.
The interface name can be used in socket API, i.e. setsockopt(). The API esp_netif_get_netif_impl_name() shoudl be used to populate standard
interface structure struct ifreq.