Support flat views, simple views, and cache API calls to jenkins

This pull request adds support for flat Jenkins views and nested Jenkins views (https://wiki.jenkins-ci.org/display/JENKINS/Nested+View+Plugin). This allows configuration to be specified as follows:

```yaml
views:
  'no-views':
    'jenkins':
      url: 'http://localhost:8080'
      jobs:
        - 'broken'
        - 'also-broken'
        - 'ok'
        - 'slow'
  'nested-views':
    'jenkins':
      url: 'http://localhost:8080'
      nested_views:
        'nested-view':
          - 'Failing'
          - 'Passing'
  'flat-views':
    'jenkins':
      url: 'http://localhost:8080'
      views:
        - 'simple-view'
```

As it turns out, using views dramatically increases the number of API queries needed to render a Waylon view. Some of this could be optimized in the codebase and in the upstream ruby jenkins_api_client library, but nested views greatly exacerbate this. To reduce the overhead this pull request also adds support for caching calls to Jenkins via memcached. This has the added advantage of making Waylon dramatically more scalable for more users and views. Using memcached requires using foreman to start the web service and memcached and specifying the memcached server in the `app_config` section:

```yaml
---
config:
  refresh_interval: 600
  memcached_server: './tmp/memcached.sock'
```

The production and development Procfiles assume that memcached will be listening on a UNIX socket for security purposes.