Various improvements to @Factory.

- Allow the name of the factory to be specified
- Allow custom modifiers to be applied (e.g. abstract/package private)
- Allow custom modifiers to be applied to methods
- Correctly return whether or not further processing is required
- Correctly attribute the generated source to the element causing it
- Say we support @Unbound so it doesn't trigger more rounds

Change-Id: I6bf56519491264c8a169bd12d08f4ae30be50bd5