Support custom working-range logic for ASRangeController

The idea is to provide an optional block-based property for custom working-range calculation (useful for ASCollectionView custom layouts), and gracefully fall back to default implementation when needed (e.g: ASTableView).