This patch breaks out the cli, programmer, and flasher code into separate files. The only file that will not cleanly compile is cli.c, which is looking for the table defined in programmer.c. Files were compiled with "gcc -c -o %.o %.c" in this test. I don't expect this patch to be committed so no sign-off. Note, the breakdown is what I assume to be the cli, programmer related code, and flash routines like read, erase, probe, verify, and etc. I didn't {re,}write any functions.