Made some minor changes to the gates.py file.

I've made a few changes to the gates.py files, the one which implements the various logic gates, which would close issue #79, if accepted.

The changes are small details, they are:
* The "self.history_active" attribute of class "GATES" is now a Boolean, which might be more readable then it's integer counterpart. Also, the function "setHistoryActive(val)" is now implemented. This function takes a Boolean as a parameter, which then becames the value of self.history_active.

* The class MIGATES was implemented, which stands for Multi Input Gates. It is now the parent class for all the gates that have more than one input and it serves to have a common constructor instead of it being repeated throughout the code.