title: Properties on CALayer subclass aren't getting observed by CATransaction
body: <p>I have a subclass of <code>CALayer</code> with a custom property, declared as such:</p>
  
  <pre><code>@interface MyLayer : CALayer
      @property (nonatomic,retain) NSNumber *customValue;
  @end
  @implementation MyLayer
      @synthesize customValue = _customValue;
  @end
  </code></pre>
  
  <p>I want to animate this property inside of an explicit <code>CATranasction</code>, so i set up a delegate with the <code>actionForLayer:forKey:</code> method implemented which returns an animation, however any changes to <code>someMyLayerInstance.customValue</code> inside of <code>[CATransaction begin] ... [CATransaction end]</code> do not result in <code>actionForLayer:forKey</code> getting called with a corresponding 'key' value. </p>
  
  <p>However, nuking the property on <code>MyLayer</code> and making changes to <code>myLayerInstance</code> by calling <code>setValue:forKey:</code> <strong>does</strong> result in <code>actionForLayer:forKey:</code> getting called. </p>
  
  <p>It appears that this is because <code>CALayer</code> does some mojo for key/value coding for undefined properties. How can I recreate this mojo so that I can declare properties on <code>MyLayer</code>, but still have them be observed by the animation delegate? </p>