Improves acprep python3 compatibility

Replaces string.join with str.join
Forces conversion to str from byte-returning functions
Introduces usage of 'as' keyword when catching exception instances
Replaces has_key with usage of the 'in' keyword for dictionary key presence checking.