fixed issues with None-like values and autoincrement fields

- changed "missing" to colander.drop instead of None or 
  empty lists so the resulting appstruct can be passed back
  into schema.serialize() without issue
  (Ex. Integer types caused colander.Invalid as None is not
  a valid integer value)
- likewise, don't add None values to dictionaries returned 
  by dictify() so that can be used as an appstruct
- modified detection of autoincrement fields so they can 
  be properly set to missing=colander.drop (wasn't detecting
  ForeignKey constraints)