removed nested for loops in the illegal char replacement step:

- merged all illiegal character sets with:
	`for character in set.union(*illegal_characters.values()):`
editied .gitignore so as not to track my ide's proj files (sorry)
added user-defined illegal characters and streamlined py2 unicode testing
.gitignore: SORRY forgot some!