Micro-electro-discharge machining: technology, computer-aided design & manufacturing and applications