Rebuild Post Settings Menu

Closes #2845. 

- Renamed `gh-blur-text-field` to `gh-blur-input`
- Changed title input in `editor.hbs` to use a `gh-blur-input`
- Added `regenerateSlugPlaceholderFlag` property `Post` model
- Blurring the post's title toggles the `regenerateSlugPlaceholderFlag`, removing api
  spam on title change (previously, regenerated on every change in title)
- Created `SlugGenerator` class to generify slug generation.
- Added `timestampVerification` function to `utils/date-formatting`
- `utils/date-formatting` now uses `strict` parsing of dates
- Added more acceptable date formats to accommodate strict parsing
The problem there is, the slug generator is on the post settings
controller, while the regenerate flag is set by the editor controller, as
it's the controller that watches the title blur
On Jun 12, 2014 9:26 PM, "Robert Jackson" <notifications@github.com> wrote:

> In core/client/controllers/post-settings-menu.js:
>
> >
> > -    slugPlaceholder: function () {
> > -        return this.get('model').generateSlug();
> > -    }.property('title'),
> > +        if (!slugGenerator) {
> > +            slugGenerator = SlugGenerator.create({ghostPaths: this.get('ghostPaths')});
> > +            this.set('slugGenerator', slugGenerator);
> > +        }
> > +        slugGenerator.generateSlug(title).then(function (slug) {
> > +            return self.set('slugPlaceholder', slug);
> > +        });
> > +    }.property('regenerateSlugPlaceholderFlag'),
>
> With the change to use the slugGenerator I think that we should bind to
> slugGenerator.slug (or whatever the prop is), and instead of toggling
> regenerateSlugPlaceholderFlag in the action, just call
> this.get('model.slugGenerator').generate(this.get('title')).
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/TryGhost/Ghost/pull/2900/files#r13737419>.
>