[Docs] Go 1.4+ required for building on Windows

See Issue #688 for more information.
Docs copyediting: Add more external URLs; add backticks, etc.
[Docs] Mention support for the Ace HTML Template Engine
Make 'where' template function accepts dot chaining key argument

'where' template function used to accept only each element's struct
field name, method name and map key name as its second argument. This
extends it to accept dot chaining key like 'Params.foo.bar' as the
argument. It evaluates sub elements of each array elements and checks it
matches the third argument value.

Typical use case would be for filtering Pages by user defined front
matter value. For example, to filter pages which have 'Params.foo.bar'
and its value is 'baz', it is used like

    {{ range where .Data.Pages "Params.foo.bar" "baz" }}
        {{ .Content }}
    {{ end }}

It ignores all leading and trailing dots so it can also be used with
".Params.foo.bar"
Refactor tpl codes

- Use indirect function instead of the same code copies
- Fix missing arguments of some test codes
Add www.thehome.dk to showcase
Fix EOF
Bumping Travis to test go 1.3 & 1.4
Add writable context to Node

The variable scope in the Go templates makes it hard, if possible at all, to write templates with counter variables or similar state.

This commit fixes that by adding a writable context to Node, backed by a map.

This context has three methods, Get, Set and Add. The Add is tailored for counter variables, but can be used for any built-in numeric values or strings.