text: Title: Bug: Spinner is not killed when parent thread throws an exception
  Body: <!-- Please use the appropriate issue title format:
      BUG REPORT
      Bug: {Short description of bug}
  
      SUGGESTION
      Suggestion: {Short description of suggestion}
  
      OTHER
      {Question|Discussion|Whatever}: {Short description} -->
  
  
  ## Description
  Currently, the thread is not killed when the parent thread throws an exception. A workaround for now is to catch the exception and stop the spinner manually.
  
  ### System settings
  
  - Operating System: Any
  - Terminal in use: Any
  - Python version: 2.7.14 (actually any)
  - Halo version: 0.0.12
  - `pip freeze` output: NA
  
  ### Error
  Spinner keeps spinning when the exception is thrown on parent thread.
   
  ### Expected behaviour
  The spinner should be stopped when an exception is raised.
  
  ## Steps to recreate
  ```py
  # -*- coding: utf-8 -*-
  """Example for doge spinner ;)
  """
  from __future__ import unicode_literals
  import os
  import sys
  import time
  
  sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath('.'))))
  
  from halo import Halo
  
  spinner = Halo(text='Such Spins', spinner='dots')
  
  
  spinner.start()
  time.sleep(2)
  spinner.text = 'Much Colors'
  spinner.color = 'magenta'
  time.sleep(2)
  spinner.text = 'Very emojis'
  spinner.spinner = 'hearts'
  raise Exception()
  time.sleep(2)
  spinner.stop_and_persist(symbol='🦄 '.encode('utf-8'), text='Wow!')
  ```
  
  ## People to notify
  @ManrajGrover
  