Add HTTP broker, one-off event submitter, general Go support

### Overview

- Add HTTP broker that caches irregularly submitted events, and submits them to Flapjack as a heartbeat.
- Add simple CLI tool for submitting one-off events to Flapjack.
- Add basic Go libraries for handling events, and sending events to Redis.
- Add basic GLI support for `exec`ing subcommands via the command line.
- Add build script for building components written in Go.

Developer [documentation](https://github.com/flapjack/flapjack/wiki/DEVELOPING) has been [updated](https://github.com/flapjack/flapjack/wiki/DEVELOPING/_compare/882bd2fe25bdf702ec4fe8eecd0dcb9249a1dae5...6c6f387c937d8b64137301cdf51e95fa41a55a5f).

You can see a demo of the HTTP broker [on YouTube](https://www.youtube.com/watch?v=VxN8PhKzZgY). 

![image](https://cloud.githubusercontent.com/assets/12306/3385789/15b2d832-fc6e-11e3-8eec-da96753a2532.png)

### Details

 - Go-based tools live in `libexec/`
 - The subcommands show up under the receiver subcommand:

``` bash
$ bundle exec bin/flapjack receiver --help
NAME
    receiver - Receive events from external systems and send them to Flapjack

SYNOPSIS
    flapjack [global options] receiver httpbroker
    flapjack [global options] receiver json [-f arg|--from arg]
    flapjack [global options] receiver mirror [-a|--all] [-f|--follow] [-l arg|--last arg] [-s arg|--source arg] [-t arg|--time arg]
    flapjack [global options] receiver nagios
    flapjack [global options] receiver nsca
    flapjack [global options] receiver oneoff

COMMANDS
    nagios     - Nagios receiver
    nsca       - NSCA receiver
    json       - JSON receiver
    mirror     - Mirror receiver
    oneoff     - One-off event submitter
    httpbroker - HTTP API that caches and submits events
```
 - Command line options are passed directly to the subcommand:
``` bash
$ bundle exec bin/flapjack receiver httpbroker --debug --server=localhost:6379 --database=13 --interval=5s
2014/06/25 23:43:56 Booting with config: {Port::3090 Server:localhost:6379 Database:13 Interval:5s Debug:true}
2014/06/25 23:43:56 Number of cached states: 0
```
Yes, that's exactly it.

Commands you want to shell out directly need to set `passthrough` to true. This causes argument parsing to halt as soon as the command is reached in this loop, and any remaining arguments become available in `ARGV` to the command. 

The motivation for this was twofold:

- Calling the command with `--help` invoked the GLI help, not the native help provided by whatever command you're calling. 
- Elimination of double handling of arguments and options. Without this, the developer needs to replicate all the arguments and options of the command being called within the GLI command definition.