Modify the look of the buildbot master's waterfall page
-------------------------------------------------------

To deploy these changes, follow these instructions:

* Copy the favicon.ico file to master/public_html/ on the buildbot master
  machine.

* Edit the master/public_html/index.html and add the following to the <head>
  element:
  <link rel="shortcut icon" href="/favicon.ico" type="image/png" />
  <link rel="icon" href="/favicon.ico" type="image/png" />

* Edit the master/public_html/buildbot.css and change the section with
  .LastBuild, .Activity {
	  width: 230px;

  to be 160px instead. Save the file and exit.
