Ported to 3.x

I ported this over to 3.x and included maintainability with 2.x - To continue maintainability on both versions some things to keep in mind.

_This has been tested in_ __2.7.4__ _and_ __3.3.2__ _on Django_ __1.4/1.5__.

Do not use b"" or u"" as from __future__ import unicode_literals handles it.
```python
  helper_text = b'ByteCode'  #Futures will handle this
  helper_text = u'UnicodeText'  #Futures will handle this
  helper_text = 'HelperText'  #This keeps it maintainable in both versions.
```
Do not use __metaclass__ - in Class declaration use six.with_metaclass(Meta,Base)
 ```python 
  class ModelSerialiser(with_metaclass(MetaModelSerialiser,Serialiser)):
```

Use six.string_types instead of basestring
Wrap list with list() in for loops that utilize *.items:
```python
  for key, val in list(obj.items()):
```