Modify SmartRenamer.scandir() to allow recursive scanning.

Modified arguments to adapt to the new changes.
You can scan a directory recursively now by passing the -R argument.
Added some output for the user.
Minor tweaks
Add some exceptions, update doc, improve extension handling.

Added an exception BadRuleFormat, only raised when the there less than 2
items after a rule line is split, will expand usage later.

Updated the documentation a little bit to reflect on the changes, still
nothing comprehensive really.

The extension is now grabbed using os.path.splitext() which should be
better than regex and more portable.

The script will look for a rule file in ~/.smart_rename.rules if nothing
is specified on the commandline.