Percentage fix, expose percentage per feature, add small cache

cc @mheffner @collinvandyck @rjenkins 
`user_id % 100` will always be < 100, so I think you can take out the `percentage ==100` check.