change instance property DbfField.is_memo to class attribute

create DbfFieldFactory class
move DbfField.parse() to DbfFields.parse()

parse() now will parse type code
change name: DbfFields.create() to DbfFields.get()
remove fields code_page

header will pass encoding to fields when encode() and decode(), because encoding is store in dbf header
memo change to base on bytes
add field flag, ai_next, ai_step

change DbfField.default_length to fixed_length
encode and decode default using locale.getpreferredencoding()
fix DbfGeneralField
check dbf header
float field always return float