Expose @Bean method metadata in BeanDefinitions

Add BeanMethodBeanDefinition which extends AnnotatedBeanDefinition and
additionally exposes @Bean MethodMetadata. The existing @Condiguration
class reader has been updated to expose the new BeanDefinition type.

Issue: