Added error handling and reporting for python module

Added default values for named parameters so that we aren’t given
uninitialized junk.
Added simple parameter checking (capacity must be 1 or more,
error_range must be less than 1)
Added new exception type to be used when reporting errors
Added check for existing filter in dealloc.
error_rate should be positive and less than 1