"Can" is definite: He "can" go to school. Whereas "could" is only a possibility: He "could" go to school.
They are both model verbs indicating that something may/might happen. "May" is a possibility indicating that something could happen: May we go to school. But "may" can also be used to affirm something: You may go to school. "May" can be used in a few other ways too. Whereas "might," also similar, has different sub-uses: With considerable might he picked up the school house. It can also be used as a possibility: might we go to school; or, we might go to school. It can also be used to indicate that somebody should have done something: You might have told me he picked up the school.
Sorry I don't have time to answer the other two. I'll check back later to make sure somebody else answered them all.