0.4 (2008.09.14)
================
- Introduced a weak reference mechanism where needed that ensures no MOP code 
  keeps classes from being unloaded.
- Renamed BaseMetaobjectProtocol.Results enum to Result
- Renamed ClassMetaobjectProtocol to BeanMetaobjectProtocol in org.dynalang.mop.beans
- Renamed ArrayClassMetaobjectProtocol to ArrayMetaobjectProtocol in org.dynalang.mop.beans
- Public constructors and static methods can now be invoked using BeanMetaobjectProtocol  
- Distribution now created with a top-level directory in the .tgz file
- ClassBasedMetaobjectProtocol contract changed to be more efficient
- Refactored to eliminate all code duplication between fixed-arg and var-arg 
  overloaded method handling
- Allowed {Array|Bean}MetaobjectProtocol to be used as first-class MOPs, 
  primarily so that various language implementations can bind to them with a 
  shorter lookup path.
- Various corner-case semantic fixes:
  - CompositeClassBasedMOP.representAs() consults target class' MOP when object
    MOP declares no authority
  - Make sure marshalling starts from the same source argument after each 
    failed overload resolution attempt in OverloadedVarArgMethod
 
0.3 (2007.11.30)
================
- Initial public release