improvements from @dchambers to nav-building code (#813)

Squashed commit of the following:

commit 723349a9c90a005137d01e19012778f4dddb1d12
Author: dchambers <dominic.chambers@gmail.com>
Date:   Fri Dec 5 13:14:13 2014 +0000

    Moved an assignment within the corresponding guard, since it was superfluous unless the guard was triggered.

commit 872974656e7500c99daba64e7db31f14f9874c0d
Author: dchambers <dominic.chambers@gmail.com>
Date:   Fri Dec 5 11:35:33 2014 +0000

    Use four spaces for tabulation.

commit 5eaabcf84c5395aeeeff018ea042e73d710e2846
Author: dchambers <dominic.chambers@gmail.com>
Date:   Mon Nov 24 18:15:36 2014 +0000

    Attempt to fix remaining linting errors -- may not work as I'm unable to run the build locally on my own machine to verify.

commit 0137865ff4aa4e888533a217f2e6bb3b12b7fc87
Author: dchambers <dominic.chambers@gmail.com>
Date:   Mon Nov 24 17:42:09 2014 +0000

    Attempt to fix remaining linting errors -- may not work as I'm unable to run the build locally on my own machine to verify.

commit 7d80410d63e29837b436776b8983004c8b92ecb2
Author: dchambers <dominic.chambers@gmail.com>
Date:   Mon Nov 24 17:17:51 2014 +0000

    Removed trailing whitespace from 'publish.js'.

commit 773b785756f5ee6c32cbcb1742543c1a2671efe7
Author: Dominic Chambers <dominic.chambers@gmail.com>
Date:   Tue Aug 26 09:58:50 2014 +0100

    Ensure the title for classes defined within modules shows the thing
    being documented as being a class rather than a module, as it currently
    does for interfaces.

commit 9fc527d63aa6839fbae07f4b6db8dee027f6fc43
Author: Dominic Chambers <dominic.chambers@gmail.com>
Date:   Tue Aug 26 09:51:10 2014 +0100

    Remove the 'module:' prefix from index links to classes and interfaces
    defined within modules.

commit 21e3e31f2499bbc9cb5f10c09cfaeb86d25ded9b
Author: Dominic Chambers <dominic.chambers@gmail.com>
Date:   Tue Aug 26 09:43:13 2014 +0100

    Removed duplicated code from the buildNav() function, where the version
    of the code used is one where items are only written if they haven't
    already been encountered, and a heading is only written when there are
    items to appear beneath that heading.
    Conflicts:
    	templates/default/publish.js