Merge branch 'develop'

* develop:
  Fix location of bootstrap log on Windows.
  Ignore build directories
  Fix mdash->emdash typo that broke documentation build.
Merge branch 'develop'

* develop:
  Make installation of Boost.Build work again.
Merge branch 'develop'
Merge branch 'develop'
Merge branch 'develop'
Merge from develop.

Core changes:

- Multiple improvements in Python port, from Aaron Boman.
- Clearer error reporting for target name clases and invalid
  metatarget references, from Vladimir Prus.

Visual Studio:

- Initial support for Windows 8 phone and store applications,
  from Steve Gates.
- Faster builds, via caching setup script invocations,
  from Juraj Ivančić.
- Support for custom DLL manifests and dlls without import libraries,
  from Bernhard B.

Tools:

- Improved clang support, from Edward Diener.
- Support for Intel 15, from John Maddock.
Use feature name for better error output.
Remove return in favor of try...except return.
Remove unused import
Fix pathing issue. ARM's ar.exe didn't like the mis-matched path separators.
check_init_parameters: requirement should be a container.
command is always a sequence, always use extend().
Old style exceptions don't work.
Use __file__ variable for location.
Add module's location to loaded_tool_module_path_ dict.
Miscellaneous improvements from Aaron Boman.

feature.py:

Use the feature's name in the error output. This helps in understanding the
error message.

project.py:

The original looked like the result of a bad merge as the return value was the
exact same as the return within the try...except block. The try...except
produces a better error message upon failure.

property_set.py:

The string module is unused.

virtual_target.py:

ARM's ar.exe would fail when passed a path to the -via file that had both
POSIX and Windows path separators. Normalizing the path on the target solved
the problem.

common.py:

The requirement parameter in check_init_parameters should be a container. The
original Jam signature marks it as a list with zero or more items. These
changes convert the requirement parameter to using only a container.

msvc.py:

The call to to_seq asserts that command is always some container. So, extend()
should always be used.

tools/rc.py:

Old style exceptions aren't allowed (at least in Python 2.7). This change just
uses the existing AlreadyDefined exception.

testing.py:

loaded_tool_module_path_ is empty upon initial import. Using the __file__
variable instead will always work (provided the import system doesn't change).