Refactored the ACO , split functions into separate files

Following the DRY (don't repeat yourself) principle. I split the ACO methods into several files. You were repeating the functions in 'ACO.c" and 'ACO_load.c' , which is dangerous. 

Now each function is defined once only.

The next step is to move the cube and ACO methods to another directory called "lib" , and reuse them for the CPU and the GPU implementation