spiderable: Correctly kill phantomjs after timeout. Fixes #571.

The previous version only killed the wrapper bash script, not the child. We now
work around the broken (socketpair) stdin presented to Node's child processes by
using a bash heredoc rather than "cat |"; this means we can use exec, which only
gives us one process to clean up.

While we're at it, simplify code by switching from child_process.spawn to
child_process.execFile, which does the work of capturing stdout and setting a
timeout for us automatically.
livedata client: Factor out "stringify message and send it" into a helper.

(Extracted from ddp-pre1 branch.)
Maybe fix #555.
Add test for fix to #555.
Merge branch 'quiesce-fix' into devel
Workaround weird header issue in firefox. Fixes #553.
Ignore example directories that begin with a period. This avoids 'meteor create --list' displaying .gitignore.
Make Meteor.autosubscribe a deprecated alias for Meteor.autorun.

Instead of a general client-side sub de-duping mechanism (which mostly existed
for the sake of autosubscribe, and causes issues with server-driven
unsubscribes), make Meteor.subscribe explicitly aware of reactivity.

Expose an "invalidated" flag on Meteor.deps.Context.

Guarantee that invalidation callbacks from different contexts will not be
interleaved at flush time. This has the implication that if you do

   context1.onInvalidate(function () {
     context2.invalidate();
   });

and this is the only way to invalidate context2, then context2's invalidation
callbacks will not be called until after *ALL* of context1's callbacks are
called. This allows us to be sure that the "unsubscribe, unless autorun tried to
re-create an identical sub" logic runs after the autorun function is rerun.