Authentication of Embedded Devices: Technologies, Protocols and Emerging Applications