Refactor into REST API

Backend API

  - Move api into a separate Router.
  - Update API to respond with `200`, `400`, `404` and `500` status when applicable.

  Add route-specific middleware

    - Load document if request includes `:uid` param
    - Validate request body params for POST and PUT requests

  Update tests and dependencies

    Add #beforeEach and #after hooks for DB setup and teardown.

  Refactor ATM model

    Validates entities before DB insertion

  - Update Atm model CRUD ops
  - Add Atm#validate method for domain objects
  - Export revalidatior Schema for modularity
  - Extract DB into `config.js` helper
  - Add helpers for Atm instance/class (getByUuid, remove, save, update)

  Upgrade dependencies

    - Upgrade `gulp-clean` to rimraf
    - Add redis and hiredis for session storage
    - Add chai-datetime for UpdatedAt/CreatedAt property comparison

  Misc

    - Update Makefile PHONY defs
    - Add Slack config
    - Update Makefile targets

    - Update bodyParser initialization on app

  Update Travis settings

    Start a mongoDB instance on boot.

  Fix wrong exit status for tests

    Runing `gulp test` reported the wrong exit code for failing tests (always 0).
    As a workaround, call Makefile's `test` target instead.

  Update JSHint prefs

    Use node best practices' [recommendations][1]

    [1]: https://github.com/felixge/node-style-guide#nodejs-style-guide
Merge pull request #13 from gfestari/rest-api

Refactor into REST API
Add Google maps with async loading

  - [WIP] Add Bootstrap and Bootswatch css
  - [WIP] Add markers to maps
  - Update location error messages
  - Update layout templates and partials
  - Update main jade template to include a map canvas container
  - Bump dependencies

Refactor gulp tasks

  - Improve `watch` for coffee and JS files.
  - Remove unnecessary growl notifications.
  - Streamline asset minification
  - Add gulp-nodemon
  - Use gulp-coffeelint and coffeelint for linting CS files
  - Add CoffeeLint settings and deps