Primal decomposition and constraint generation for asynchronous distributed mixed-integer linear programming