Bug 963327 - Improve profile-dependent handling of OS.Constants.Path; r=Yoric

Many properties in OS.Constants.Path are dependent on the profile being
available. This patch improves their handling.

Previously, we had some repeated and boilerplate code for making
OS.Constants.Paths.<prop> a lazy getter. This patch eliminates the
boilerplate by iterating over the properties that need to be lazy
getters.

AppData and UAppData are now lazy getters.

test_profiledir.js has been rolled into test_path_constants.js.

test_path_constants.js now emits a warning when a comparison doesn't
test anything. This should help identify ineffective tests going
forward.

--HG--
extra : rebase_source : 971e2bd5f313de2b25090a67d20e101c859f4f4c