Add `import ... hiding (...)` construct

This adds `hiding` clause to `import` declaration.

I started to write bindings to a data structure library and wasn't able to define `empty :: Vector a` because it conflicts with Prelude.

This PR is not ready to be merged but just to check if you are willing to accept
this feature and to collect the feedback (I'm not skilled haskeller).