use defineProperty instead of defineGetter which is more widely available

defineGetter is generally not available on IEx
Merge pull request #4 from vvo/use-defineProperty

use defineProperty instead of defineGetter for accessing `length`