Use requirements.txt for managing python dependencies

As discussed on IRC, the update will allow reading mandatory global and template specific dependencies as well as optional global dependencies.

Comments in requirements.txt will be parsed in a specific way:
* Comments beginning with "# Error:" or "# Warning:" will overide the default error/warning message
* Comments after a package name will be used to decide package to import in case library name != module name. Ex: "python-dateutil>=1.5 #dateutil" would test by importing dateutil. Syntax such as "from foo import bar" is allowed as well
* Comments that do not adhere to the above criteria are ignored

TODO: Allow checking version for xlrd