Veritas NetBackup may represent compact metadata values as binary strings. Given two non-empty strings a and b containing only '0' and '1', return their binary sum as a string.
Do not convert the entire inputs to decimal integers. Process the strings directly so the algorithm works efficiently for very large binary values.
Implement add_binary(a, b), where a and b are binary strings. Return a binary string representing a + b, with no leading zeroes unless the result is exactly "0".
def add_binary(a, b):