Fix DecimalWidget.clean TypeError w/ Python < 2.7

Support for using a float as the constructor for a Decimal                      
was only added in Python 2.7.                                                   
                                                                                
On earlier versions (including 2.6, which is the latest                         
version available on e.g. CentOS 6), running something like                     
Decimal(1.0) results in:                                                        
                                                                                
  TypeError: Cannot convert float to Decimal.  First convert the float to a string
                                                                                
The solution is, as the exception says, is Decimal(str(1.0))                    
to make explicit precision trade-offs. This commit makes                           
`DecimalWidget` attempt that approach if Decimal(value)                            
fails.                                                                             
                                                                                   
The original TypeError should probably be re-raised if                             
Decimal(str(value)) fails as well.