Modified base.py to include and use pin class and drawIC() method

__1. Created a Pin class:__

* Recognizes states as logic objects which have overloaded operators `&`,`|`,`+`,`~` and `^` .
These operators maps to the BinPy's logic gates AND, OR, OR, NOT and XOR respectively <br> MOTIVATION: Allows fast implementations of ICs by use of these operators rather than specifying the function every time.
* Includes provision to specify `pin_tag` a 3 letter tag for every pin.
* Includes `__call__()` method which can be called to return the state of the pin.

__2. Created `drawIC()` method inside IC class:__

* Visually prints the pin configuration of the particular IC along with its current state.
* Displays a pin_tag for each pin if available.
* Displays the IC No at the center of the IC ( vertically downwards )
* Is compatible with both pin class implementation of IC pins and list implementation of IC pins.

__3. Created 4000 series IC's based on discussions with @debugger22 and @livingstore__

__4. Created IC 4081 and IC 4082 to portray the functionalities of Pin class.__

__5. Added tests for IC 4081 and IC 4082.__

Pl review and let me know if any changes are to be made.