PES_Rule variable learning_rate

This commit uses a technique based on new class builder.IVector to
implement a variable learning rate attribute on the PES_Rule class.

It is certainly that the PES_Rule should have a variable learning rate, so
that we can measure the generalization of the learned communication channel
in learn_communicationchannel.py for example.

The particular API details of how exactly the PES_Rule exposes that
possibility is less clear. I picked something here that seemed reasonable,
but the floor is open for discussion.