Oscilloscope and Multivibrator

<hr>

__SUMMARY OF ADDITIONS / MODIFICATIONS__

<hr>

__1. Added `Multivibrator` - Uses threading concept__
A Triple mode ( Monoshot, Astable, and bistable ) multivibrator.


__2. Added a text based `Oscilloscope` - Uses threading concept__

Added a text based oscilloscope which can help users view the time waveforms of connected elements in the terminal. 

Features include setting up of the scale to suit the users needs and a `setColour()` method to set the display colour [ only in supported operating systems ] of the oscilloscope. 

The oscilloscope module can be reused without reinitialization for displaying a different waveform.


__3. Enhanced the output of `drawIC()` method to make the vertical lines look connected and the notch in the IC more natural.__


__4. Changed connector class to include `isInputof` `isOutputof` and `untap` methods.__
Connection checking and untap method added.
USAGE:
```
>>>    a = Connector(1); b= Connector(1); o = Connector();
>>>    g1 = AND(a,b)
>>>    g1.setOutput(o)
>>>    a.isInputof(g1)
True
>>>    a.untap(g1)
>>>    a.isInputof(g1)
False
>>>    o.isInputof(g1), o.isOutputof(g1)
False, True
```
__5. Added Examples for Multivibrator in different modes__

__6. Modified examples of all FlipFlops and Counters to include oscilloscope preview__

__7. Corrected Exception handling statement to be compatible with both Python 2.x and Python 3.x by replacing `e` by `sys.exc_info()[1].args[0]`__

__8. `autopep8` - ed the codebase (Redid the same after Rebase too)__

<hr>
__PREVIEWS:__

<hr>


__1. Usage of Multivibrator in mode 2 with the oscilloscope:__

```
Output = Connector()

#Initiating the mulivibrator

Mult1 = Multivibrator(0, 2, on_time=0.2, off_time=0.8)
Mult1.start()

out = Connector()
Mult1.setOutput(Output)

Mult1.trigger()

#Initiating the oscilloscope

o = Oscilloscope((Output, 'OUT'))
o.start()
o.setScale(0.2)
o.unhold()
time.sleep(10)
o.hold() 
# o.hold() is not required as it is included in the display. 
# It is shown to get a clear picture of the working.
o.display()
```

```
=====================================================================================================================================================================
BinPy - Oscilloscope
=====================================================================================================================================================================
                                                                                                                                 SCALE - X-AXIS : 1 UNIT WIDTH = 0.2
=====================================================================================================================================================================
          │
          │
          │     ┌┐   ┌┐   ┌┐   ┌┐   ┌┐   ┌┐   ┌┐   ┌┐   ┌┐                                                                                                        
   OUT    │     ││   ││   ││   ││   ││   ││   ││   ││   ││                                                                                                        
          ─ ────┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└───┘└────────────────────────────────────────────────────────────────────────────────────────────────────────
          │
          │
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

```


__2. Sample Time waveform generated using the oscilloscope [ for `JKFlipFlop` ]__

[ In the actual command line the vertical lines appear solidly connected unlike the preview below ]

Please try running a sample program in `BinPy/examples/Sequential/` to get a exact preview of the oscilloscope.



```
=====================================================================================================================================================================
BinPy - Oscilloscope
=====================================================================================================================================================================
                                                                                                                                SCALE - X-AXIS : 1 UNIT WIDTH = 0.01
=====================================================================================================================================================================
          │
          │
          │                                 ┌────────────────┐                 ┌─────────────────┐                ┌──────────────┐                                
   CLK    │                                 │                │                 │                 │                │              │                                
          ─ ────────────────────────────────┘                └─────────────────┘                 └────────────────┘              └────────────────────────────────
          │
          │
          │
          │
          │ ┌───────────────────────────────┐                                   ┌─────────────────────────────────┐                                               
   J      │ │                               │                                   │                                 │                                               
          ─ ┘                               └───────────────────────────────────┘                                 └───────────────────────────────────────────────
          │
          │
          │
          │
          │                                 ┌─────────────────────────────────────────────────────────────────────┐                                               
   k      │                                 │                                                                     │                                               
          ─ ────────────────────────────────┘                                                                     └───────────────────────────────────────────────
          │
          │
          │
          │
          │ ┌────────────────────────────────────────────────┐                                   ┌──────────────────────────────────────────────────┐             
   OUT    │ │                                                │                                   │                                                  │             
          ─ ┘                                                └───────────────────────────────────┘                                                  └─────────────
          │
          │
          │
          │
          │                                                  ┌───────────────────────────────────┐                                                                
   OUT!   │                                                  │                                   │                                                                
          ─ ─────────────────────────────────────────────────┘                                   └────────────────────────────────────────────────────────────────
          │
          │
          │
          │
          │ ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐             
   ENABL  │ │                                                                                                                                       │             
          ─ ┘                                                                                                                                       └─────────────
          │
          `│
│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

```
__6. New Look of drawIC()__

[Please note that all vertical lines will be connected - Markdown prevents it from looking connected in the preview below]

```
              ┌─────────◡─────────┐
              │                   │
     [1]    ──┤  1            14  ├──    [1]    
              │                   │
              │                   │
     [0]    ──┤  2      7     13  ├──    [0]    
              │                   │
              │                   │
     [1]    ──┤  3      4     12  ├──    [0]    
              │                   │
              │                   │
     [0]    ──┤  4      0     11  ├──    [1]    
              │                   │
              │                   │
     [0]    ──┤  5      0     10  ├──    [1]    
              │                   │
              │                   │
     [1]    ──┤  6             9  ├──    [1]    
              │                   │
              │                   │
     [0]    ──┤  7             8  ├──    [0]    
              │                   │
              └───────────────────┘  

```