Removed SmartMutex. It was unnecessary.
Better atomic locking.
Replaced all #atomic calls with Mutex objects to support more Ruby interpreters.
Adding JRuby and Rubinius to the Travis config.