Add address sanitizer options

These flags are new in GCC 4.8.0 and are used for catching
use-after-free bugs using cheaper intrumentation than valgrind.
Add an option for the analyze flag for MSVC
Use library_subdir_suffix in install directories
Quote the component
Iterate on the status of the stream after reading

If getline fails, the input can't be trusted, so the loop should
continue based on whether it completes or not.
Check std::getline calls in tests
Find Boost when finding sprokit

Boost is required for sprokit to work. To accomplish this, a few things
must be met:

  - if sprokit is marked as REQUIRED, Boost is REQUIRED as well;
  - same exact version must be used; and
  - if sprokit uses a static Boost, dependent projects should as well.

If Boost_INCLUDE_DIR isn't set already, the value used to build sprokit
will be used to help things go smoothly.
Make _sprokit_export a function

The return() in a macro escapes the current scope. Instead, push the
variable into the parent scope.
Use global properties for macro storage

The values aren't of much use in the cache, so using a global property
is more logical.
Suppress install of all tests

Nothing in the test directory should get installed.
Use a global property for available sprokit fixes
Use properties for fix mechanisms
Add a comment about BOOST_MANGLED_NAMESPACE
Write noarch modules to a separate directory

Ninja says that multiple rules write to the same destination.
Split sprokit-specific includes out

Use _DIR for sprokit's paths and _DIRS for dependencies as well.
Split out common sprokit-config logic

Split out the differences between a build and install tree into separate
files. This allows the logic for requiring boost, checking versions, and
so on exist only once.
Deny a relative install prefix

This makes the installed sprokit-config.cmake file fairly useless.
Add documentation for sprokit_output_dir
Quote variable expansions
Use a string for whether a key is tunable