APCs that are undersupplied now call cell.give()

APCs that are undersupplied now call cell.give() instead of manipulating cell.charge directly, for better encapsulation. 

Also I just want to make sure I can make pull requests properly before doing anything bigger.