The universal Turing machine (2nd ed.): a half-century survey