Remove duplicate posts and tags on import

Issue #806

- Modify sanitize to check for duplicate posts and tags
- Update posts_tags when referencing removed duplicate tags
- Return both data and problems from importData
- Add tests for duplicate posts and tags with fixtures
Removes objectTypeModelMap to reduce circular dependency.

refs #2455

- also note areas where we still have lazy loading of modules.
- moves one lazy loading to non-lazy require.
Created image helper with absolute url option

closes #4231

- Adds {{image}} helper
- Adds image_spec test unit
- Updated {{ghost_head}} to use image helper
Workaround for outlook, who doesn't like quoted-printable encoding

For example, outlook 2013 plus would not interpert the following html
(encoded via quoted-printable encoding):
<a href=3D=22http://engineering=
.como.com/ghost/signup/MTQxNTcwNzM5MTYwN3x5dXJ5QG5peC5jby5pbHx3NVBmUUN4RGZr=
cGhKc3FPOElybXNZNWtzR0FMTU9tRFI5UlNyRWQ4SGJZPQ=3D=3D/=22 style=3D=22color:
=

The workournd forces node-mailer to user base64, which outlook understands
well.
Update Ember to 1.8.0.

Closes #4316
- Ember@1.8.0.
- Ember-Data@1.0.0-beta.11.
- Change templates to use new Ember.Select syntax and other minor
  cleanup.
- Adjust functional tests.
File structure cleanup
Var cleanup
Better comments

Also introduces a new format of file opening comment, to outline what happens and a contents list.
Merge pull request #4342 from PaulAdamDavis/sass-cleanup

Cleanup modules Sass
Merge pull request #4361 from jaswilli/ember18

Update Ember to 1.8.0.
Handle null/undefined value in test assertion.

No Issue.
- Test is not guaranteed to get a setting that has a "value"
  so we need to handle the case where it's null or undefined.
Merge pull request #4363 from jaswilli/fix-test

Handle null/undefined value in test assertion.
Timeout after two seconds on gravatar lookup.

Refs #4277
- Switch from the built-in http module to request and set
  a timeout of 2 seconds on gravatar lookup requests.
- Move request package from devDependencies to dependencies.
Improve handling of forked processes in tests.

Closes #4277
- Increase the wait time for forked processes to spin up.
- If we give up on waiting for a forked process, send it a
  kill signal so if it comes alive later it doesn't sit in the
  background forever.
- Fail fast if test setup fails instead of waiting for the timeout.
Update dependencies.

No Issue
- bluebird@2.3.10
- bookshelf@0.7.9
- fs-extra@0.12.0
- semver@4.1.0
- grunt-ember-templates@0.4.23 (remove direct dep on ember-template-compiler)
- grunt-sass@0.16.1 (remove direct dep on node-sass)
- remove direct dependency on mocha (only used via grunt-mocha-cli)
Merge pull request #4367 from jaswilli/issue-4277

Timeout after two seconds on gravatar lookup.
Merge pull request #4371 from jaswilli/fork-timeout

Improve handling of forked processes in tests.
Merge pull request #4372 from jaswilli/deps

Update dependencies.
Editor must be focused before allowing certain keyboard shortcuts.

closes #4253
- checked for the CodeMirror-focused class on the CodeMirror div
- used length to determine whether CodeMirror-focused has been added
- determines whether the editor has been focused on
Update Sass Grunt task output style

No issue

A recent update to NodeSass changed the keyword for output style from `style` to `outputStyle`.
This updates that, thus making the minfied CSS, actually minfied.