Fix typehint stuff for primitive types

This diff fixes issues with how typehints work for primitive types like int
and string. The fix works by reserving the names "HH\int", "HH\string", etc.
and to use the HH namespace auto-import mechanism so that users can simply
type "int" and "string" inside "<?hh" files (similar to what we do for the
collection classes). This also allows "<?php" files to use classes in the
global namespace whose names conflict with primitive types (ex. a class
named "string"), which is a compatibility win.

Reviewed By: @elgenie

Differential Revision: D1229462
Reinstate full conversion, disallow \primitive

Now that D1229462 is ready, we don't need this any more. This
might break a little bit of Hack code that was written externally, so
give a reasonable error about it. (I don't feel too bad about breaking
backwards compat with the folks who have been using our nightlies --
there hasn't been a release yet; this will all be in 3.0.)

Closes #2135

Reviewed By: @gabelevi

Differential Revision: D1234791