fix issue #547

Fix https://github.com/phalcon/zephir/issues/547

- add a property `implementedInterfaceDefinitions` to class `Zephir\ClassDefinition` to hold `ClassDefinition` objects of its implemented interfaces.
- add getter and setter to the added property `implementedInterfaceDefinitions`.
- add interfaces check to `Zephir\ClassDefinition::calculateDependencyRank()`
- set class' implemented interface definitions in `Zephir\FileCompiler::checkDependencies()`