message: add python binding for addInstruction that takes a CompositeInstruction to avoid need for xacc.asInstruction() cast call
diff: @@ -39,7 +39,9 @@ void bind_ir(py::module &m) {
  py::class_<xacc::ContributableService>(m, "ContributableService", "")
  .def(py::init<std::shared_ptr<Instruction>>(), "");
  - py::class_<xacc::BaseInstructionVisitor, std::shared_ptr<xacc::BaseInstructionVisitor>>(m, "BaseInstructionVisitor");
  + py::class_<xacc::BaseInstructionVisitor,
  + std::shared_ptr<xacc::BaseInstructionVisitor>>(
  + m, "BaseInstructionVisitor");
  py::class_<xacc::Instruction, std::shared_ptr<xacc::Instruction>>(
  m, "Instruction", "")
  @@ -67,13 +69,15 @@ void bind_ir(py::module &m) {
  .def("getSamples", &xacc::Instruction::getSamples, "")
  .def("duration", &xacc::Instruction::duration, "")
  .def("start", &xacc::Instruction::start, "")
  - .def ("accept", [](xacc::Instruction& i, std::shared_ptr<xacc::BaseInstructionVisitor> visitor) {
  + .def("accept",
  + [](xacc::Instruction &i,
  + std::shared_ptr<xacc::BaseInstructionVisitor> visitor) {
  i.accept(visitor);
  })
  - .def ("accept", [](xacc::Instruction& i,xacc::BaseInstructionVisitor& visitor) {
  + .def("accept",
  + [](xacc::Instruction &i, xacc::BaseInstructionVisitor &visitor) {
  i.accept(&visitor);
  - })
  - ;
  + });
  py::class_<xacc::CompositeInstruction,
  std::shared_ptr<xacc::CompositeInstruction>>(
  @@ -97,6 +101,11 @@ void bind_ir(py::module &m) {
  xacc::CompositeInstruction::addInstructions,
  "")
  .def("addInstruction", &xacc::CompositeInstruction::addInstruction, "")
  + .def("addInstruction",
  + [](xacc::CompositeInstruction &ci,
  + std::shared_ptr<xacc::CompositeInstruction> toadd) {
  + ci.addInstruction(toadd);
  + })
  .def("clear", &xacc::CompositeInstruction::clear, "")
  .def("addVariable", &xacc::CompositeInstruction::addVariable, "")
  .def("addVariables",
  