You can accomplish most of what you want using the BBMap package.
Filtering Ns and short sequences:
bbduk.sh in=file.fasta out=filtered.fasta maxns=50 minlen=1000
Removing exact duplicates and containments:
dedupe.sh in=file.fasta out=deduped.fasta
Unfortunately BBDuk does not have a mechanism for removing sequences based on the % of Ns, just the absolute number, but I may add that.