There's new API GetSpellCharges, which should return the desired value, at least for player unit. (haven't tested it myself...)
Also, paladins have
clemency talent which give an additional charge to all "Hand of ..." spells.
EDIT: Just tested it...
it takes spellname or spellid as argument and returns 4 values: currentCharges, maxCharges, rechargeStartTime(same format as GetTime()), rechargeTime(in seconds)
It returns nil if the spell have only one charge.
Also found a bug... calling it with "Chi Torpedo" when having both
celerity and of course
Chi Torpedo talents returns incorect results, checking for "Roll" works fine even if its replaced with torpedo.