Expand macro documentation

These changes are based somewhat on the [discussion on the julia-users list](https://groups.google.com/d/msg/julia-users/YTZM3Biy-rM/m0orpSjQ8RIJ) and somewhat on my own stumbling points as I was learning how macros worked.

Here's the motivation behind these changes:

* Stress that macros *return* an expression to be evaluated, and hopefully make it look like they're less magical to newcomers. Make `return` explicit in the examples, so it looks less like textual substitution and more like a mapping from exprs to an expr.
* Provide an example where the macro is more than just return an expression. The changes to `@assert` since the original documentation was written make this very natural without needing to contrive another example.
* Use function such as `macroexpand` and `dump` in the examples to help make things more concrete and give users tools to play with.
* Make the hygiene section introduction a bit more clear, with an emphasis that the only thing it needs to worry about is the returned expression.

I think this should help folks 'get' macros a bit quicker. I hope.
Implement hash-checking on downloaded dependencies

Dependencies will be checked at extraction-time, and have their checksums stored
in deps/checksums/. The deps/jlchecksum command tests a given filename against the
checksums stored in that file, supporting MD5 and SHA512 checksums for all
recorded files.  SHA512 is preferred, with MD5 available as a fallback in the
case that `shasum` is not available.  If the hashes do not match, an error is
thrown and compilation is halted.  If a file is asked for and no hash has been
given for that file, the hash is generated for both SHA512 and MD5, and stored
Add an item into NEWS.md
More verbose/user friendly error messages in jlchecksum
use convert instead of ntuple in pointer_to_array
Merge pull request #6773 from JuliaLang/sf/depchecksums

Ensure downloads are correct via checksums
Travis has turned on multi-os support for this repository, let's use only linux builds for now!
Merge pull request #6794 from mbauman/doc-macro

Expand macro documentation
remove testing typo
improve syntax error line numbers. closes #6179
Merge pull request #6849 from tkelman/patch-4

remove testing typo
clearer error for uses of invisible, default-ignorable characters
Test sha512sum
update NEWS about allowed unicode identifier characters
windows: move ispty and raw! to base
Merge pull request #6853 from JuliaLang/sf/depschecksum

Add sha512sum to jlchecksum
Advertise parser error reporting improvements in NEWS.md
Improve printing of try block expressions

Previously, try blocks didn't quite show their catch statements correctly, and they completely failed to display nicely when a finally block was included:

    julia> :(try; do_try() catch end)
    :(try  # line 1:
            do_try()
        end)

    julia> :(try; do_try() catch do_catch() end)
    :(try  # line 1:
            do_try()
        catch false
            do_catch()
        end)

    julia> :(try; do_try() finally do_final() end)
    :($(Expr(:try, :(begin  # line 1:
            do_try()
        end), false, false, :(begin  # line 1:
            do_final()
        end))))

With this patch, they display correctly and look much more like the written syntax:

    julia> :(try; do_try() catch end)
    :(try  # line 1:
            do_try()
        catch
        end)

    julia> :(try; do_try() catch do_catch() end)
    :(try  # line 1:
            do_try()
        catch
            do_catch()
        end)

    julia> :(try; do_try() finally do_final() end)
    :(try  # line 1:
            do_try()
        finally  # line 1:
            do_final()
        end)
add list of mathematical symbols to allow as identifiers
Merge pull request #6857 from mbauman/better-try-expr-show

Improve printing of try block expressions