add has_one? method and reuse instead of checking macro

Instead of checking for `macro == :has_one` throughout the codebase create a `has_one?` method to match the `belongs_to?`, `polymorphic?` and other methods.