Python Port: Make importing a little more robust.

- create a b2.<whatever> index for O(1) package/module searching.
- make the .pyc's sit next to their respective files; preventing
  pollution of workspace
- restore the __file__ variable for imported files
- prevent importing the same module twice under two separate names;
  also preventing running initialization code twice (registering types
  and features)
- create an __init__.py for the contrib directory
- requires Python 2.3 or newer for pkgutil