Various improvements in searching for IronPython

These improvements are related to the issue #11 and #12.

# Features

* Improved expression of version numbers.
* Validation of (Iron)Python executables.
* Improved search for the optimum version of IronPython.

# New modules
## `datatypes`
In this module the new class `HashableVersion` is defined. This class enables easier comparison of version numbers. Also, its instances can be used as a key of a dictionary.
## `process`
In this module the new function `execute_ipy` is defined. This function executes the IronPython executable and returns the result.

# Improved modules
## `detect`

* Both `search_ipy_env` and `search_ipy_reg` now validates (Iron)Python executables with the new function `validate_pythonexe`.
* `auto_detect` now handles patch version numbers.
* Detailed version information with `HashableVersion`.