First inter-processor communication implementation
Adds a compile cache so programs are compiled only once
Merge branch 'InterProcessor_communication'