Enhance randint(), add randfrac(), and fix issues involving #TEST tag and '.

* Functions randint() and srandint() are enhanced.
* Add functions randfrac() and srandfrac()
* Each tag has now too types of arguments, code ones and raw ones.
  This distinction fixes an issue when ' was used in #TEST or #IFNUM
  arguments.
* Add `detect_strings` keyword to find_closing_bracket(), to disable
  inner strings detection while scanning a string.
* Add unit tests and improve comments and some docstrings.