Allow backspacing over everything in insert mode

The previous setting frequently slowed my ability to edit.
Set 'autowrite'

* Automatically :write before commands such as `:next` or `:!`
* Saves keystrokes by eliminating writes before running tests, etc
* See `:help 'autowrite'` for more information
Add envup script for loading environment variables
Globally ignore `.env` file

It is a common practice to store environment variables in a .env file in
development. This file is read by tools such as foreman and dotenv. This
file can contain sensitive information such as secret keys and should
always be excluded from version control
Add a commit message template

Using the `commit.template` setting, read in a commit message template
for each commit. This template is commented out so the commit message
author doesn't need to delete it.

The template serves as a reminder on how to write a better commit
message. The bullets are taken from Caleb's blog post[1]. There is no
_problem_ per se -- we are writing good messages these days -- but it's
handy to be reminded of things to think about. For example, people often
forget to note whether there are any side effects.

This message does not show on `git commit --amend`, only normal `git
commit`.

[1] http://bit.ly/13HWyiy
The user is able to type [ or ]

There are many workarounds[1] to the

    zsh: no matches found: ...

issue, but let's just stop it at its core: turn off that `nomatch`
functionality.

Apologies to all who enjoy seeing the pun around:

    % got a light?
    zsh: no matches found: light?

But all good shell puns[2] must come to an end.

[1] http://robots.thoughtbot.com/post/18129303042/how-to-use-arguments-in-a-rake-task
[2] http://www-users.cs.york.ac.uk/susan/joke/unix.htm
Merge remote-tracking branch 'upstream/master'