ENH: add regex functionality to DataFrame.replace

add default of None to to_replace

add ability to pass regex as to_replace regex

Remove cruft

more tests and add ability to pass regex and value

Make exceptions more clear; push examples to missing_data.rst