Support limited concurrency for expensive jobs.

Lua:
- Add Build.Options table to set advanced options.
- Add MaxExpensiveJobs option to above.
- Persist above flag in JSON.
- Persist per-node expensive flag in JSON.
- Tag link jobs as expensive by default.

Native:
- Pass along max # expensive jobs in dag data.
- Keep expensive wait list next to build queue.
- When attempting to run an expensive job, check to see if the
  concurrency limit would allow it. If not, park the job.
- When an expensive job finishes, unpark a single expensive job
  previously parked if any.

Add documentation.
Add example.

Closes GH-177