if hosts is localhost or 127.0.0.1 don't require it to be in inventory

This fixes issue #3129, which means ansible no longer requires explicit localhost in inventory files.

localhost and 127.0.0.1 should now always be one and the same host (an improvement upon 20bf5f130d67b5f75f925d9084c39d7f4882de28 as detailed in commit message).

Implicitly created localhost defaults to local connection using the same python executable as the currently running one, which is usually The Right Thing (e.g. uses the right virtualenv).