Refactor out ability to acquire UTC time, add specs for invalid times

Refactor:
 * The ability to acquire UTC times into a new method
   (time_from_natural_language)
 * Processor spec to use contexts and describes better

Add:
 * Specs for invalid times for the process methods
Create a utilities module, and move utility methods into it

Add:
 * A Utilities module which holds utilities methods

Move:
 * class_from_string into Utilities module
 * time_from_natural_language into Utilities module
Add specs for Utilities module

Add:
 * Specs for time_from_natural_language method
 * Specs for class_from_string method