Rahul century puts India on top against England in second Test