Reformed is_power_of_two() to return false for self == 0, and moved previous functionality to is_power_of_two_or_zero()