Use field.to_python to do django type conversions on the field before checking if dirty.

This solves issues where you might have a decimal field that you write a string to, eg:
>>> m = MyModel.objects.get(id=1)
>>> m.my_decimal_field
Decimal('1.00')
>>> m.my_decimal_field = u'1.00' # from a form or something
>>> m.is_dirty() # currently evaluates to True, should evaluate to False
False

This pull request could probably use some unit testing, but it should be safe as the base class for django fields defines to_python as:

def to_python(self, value):
  return value

So, any field type that does not have an explicit to_python method will behave as before this change.
Correctly use attname instead of name as per django docs.
PEP 8
Fixed dict generators removing list generator
Made is_dirty a property and changed comparison to type conversion
get_dirty_fields now only returns the names of fields that have changed
DirtyFields sets update fields automatic for Django
Limited usage of update_fields to Django 1.5+
Reversing the PickledFields
Merge remote-tracking branch 'georgemarshall/master'

Conflicts:
	src/dirtyfields/dirtyfields.py