Remove dead code :skull:
Add $tw.util.isEqual

This checks to see if an array is equal. Should handle case where an
array is considered null or undefined. It short circuits when the
lengths are different and will only loop when needed.
Add isDraft to Tiddler object

Check to see if this tiddler is a draft (has a draft.of field)
Add isModified to Tiddler object

Adds a check to see if this tiddler differers from the tiddler
referenced in the draft.of field. It iterates of the fields property
skiping those feilds that offer a false positives. Uses the isEqual util
for the tags array.
Prevent saving un-modified tiddlers

When saving a tiddler we check to see if the tiddler has changed
(isModified) if it hasn't then bounce the event to tw-cancel-tiddler
instead.

Addresses first line item in issue #570
Add a confirmation to edit a shadow tiddler

Should only display the confirmation if the shadow tiddler has not been
overridden in the first place. It checks this by looking for the
existence of a modified field for which the default system based shadow
do not have until a user changes them.

This addresses the second line item on issue #570

We will need new translations for the added string
`ConfirmEditShadowTiddler`
Add warning box while editing a shadow tiddler

This addresses the third line item of issue #570

TODO: The filter is not working.
TODO: The message is too genaric and needs help.
Fix coding style
Move shadowWarning to it's own template segment
Rename isEqual to isArrayEqual
Move isModified from Tiddler to Wiki

Replace this with a $tw.wiki.isModifiedTiddler(title) as part of the
wiki object. This allows it to be used outside of the current Wiki which
can change.
Use new get filter from commit 570cad1c
Merge pull request #586 from sukima/feature/issue-570-cancle-unchanged-drafts

Fix issue #570 Make it harder to accidentally modify a shadow tiddler