[WIP] indicators: massive common code cleanup

Does not yet function properly, but much needed cleanup
Merge branch 'indicator-cleanup'