Refactorings in Preparation to Framework Support

Before everything else gets merged, I would like to get these changes in.

Those reduce ambiguties in preparation to framework support by getting rid of the attribute name `library` instead of that attributes are now named consequently on base of their class names:
* `PBXNativeTarget` →  `native_target`
* `Target` →  `target`

These change don't incorporate the Hooks-API so far, so it shouldn't break backwards-compatibility.
CocoaPods strongly favours composition over inheritance:

```
def generate
  result = Header.new(platform)
  [...]
  result
end

No need to fix it, just stating for your future knowledge.