Finished a basic harvester logic which sets its harvesting and destination (where it brings the resource to) in memory which can be set by the overlord.
The harvester uses a state machine which persists also via memory to know what its doing and currently just travels to its harvest_spot, harvest, travels to its destination and delivers there and then repeats.
This means there is currently close to no error handling. For example if the storage is full, the harvest target is cooling down or the creep dies of age or damage is an issue. The creep also doesn't register its death or damage in anyway.
Added more comments for explaining the code's intent
Added very basic pathfinding in the harvesterRole. Currently only moves the creep towards the nearest source and repeats the pathfinding process every tick.
Introduced rough organization structure based on a hivemind ordering overlords which eventually order creeps and spawns.
Moved all source files into src/ so that grunt tasks can work properly on them.
Added tasks to flatten the folder structure and rename the files and requires() accordingly.
Also added a task to insert a version.js with a global version variable as well as time-grunt to show the time it takes.