Converted module to Angular factory
Added all inline documentation
Added dirty detection which avoids the need to call 'calculate' explicitally before 'on'
BUGFIX: Dirty never getting reset on calculate
Added README