big module re-structuring

added CycleRoll.Internal module to make it easy to seperate library API
from implementation