Software-Defined Underwater Acoustic Modems Historical Review and the NILUS Approach