Added some comments to clarify API use.

Also changed retain()/release() to inc_ref()/dec_ref(). I was too
confusing with ScopedRefPtr<>'s release() method. It also better says
what it's supposed to do. I also change Batch's list of statements to use
SharedRefPtr<> insterad of manually handling ref counts.