Fix: piqi to-proto incorrectly handling aliases in some cases

Alias pointing to an imported record which field has an imported type was
handled incorrectly.
Build improvements and fixes for Windows/MinGW build
(ocaml) Fix: calling piqic-ocaml --pp in non-terminal mode

Add -printer o to the arguments of camlp4o when --pp is used in piqic-ocaml

(It used to be there but was removed by mistake during piqic-ocaml rewrite.)

Camlp4o uses the Camlp4AutoPrinter by default (no -printer argument
provided), which will either produce ocaml code or a binary AST
depending on whether the output is a terminal or not (regardless of any
-o option provided). If piqic-ocaml is run from a process that is not
started on a terminal, the results of piqic-ocaml --pp was a binary AST
file.
Fix Piqi validation problem

Before the fix, the input below was treated as valid and the ".input int" was
being silently overridden by the explicit alias.

Now, "duplicate type definition" error is reported in such cases.

    .function [
        .name user

        .input int
    ]

    .alias [
        .name user-input
        .type string
    ]
Drop support for OCaml <= 3.11 and remove dependency on camlp4 extensions

The pa_labelscope camlp4 extensions is kept as a part of the piqilib package so
that existing programs can still use it.
Rename piqi-tools/ -> src/
Cleanup README
Add support for building on Windows using modern Cygwin-based MinGW toolchain

Drop support for MinGW/Msys builds. They worked only with really old OCaml 3.11
Add a note about building under Cygwin to INSTALL
Move piqi-ocaml to https://github.com/alavrik/piqi-ocaml
doc: repoint ocaml links to the new piqi-ocaml github repo
Assume that piqi-ocaml is available as ../piqi-ocaml for "make piqi"
Fix a missing source code location reference
Remove an assert
More robust scheme for locating imported and included .piqi modules (see #43)

When Piqi looks for included or imported `.piqi` module by its module name, it
tris one or more directories until it finds the matching file. The lookup order
is defined as follows:

- directory from which the referring module was loaded
- search paths explicitly provided by using the `-I ..` command-line parameter,
  which can be specified more than once
- current working directory (`.`)
- search paths listed in the `PIQI_PATH` environment variable, with several
  paths separated by `:`.
Merge remote-tracking branch 'upstream/master'