Refactor binary addition

This accepts an arbitrary number of arguments.