breaking changes - make api signatures consistent

made order of params consistent: key, object everywhere; all accessors use callbacks to return value; reuse tryget functionality instead of duplicating it.