Modified the structure for admin pages' layout

Use block append instead of block, add the stylesheets block in the
layout.jade
Modified the message format, add validate from API

Use Tag.find().limit(1) to validate if existed a tag with the same tag
name, if existed, return a 400 to the POST new tag api.
Add the warning message for deleting tags

Change some codes to make everything clearer, add a warning message
after delete the tag.
Add the undo function to tags

Set a undoCollection to save the deleted tags, and a variable undoable
in the messageModel to show if you can undo or not (only delete command
could be undo)
Add the page for accounts

The account page used a better structure, split the single and the list
in to different views.
Add basic function for account page

Finish the account list, toggle buttons, filter function
Finish the account edit UI
Finish the add new account for API and front-end
Add ordering function for account

Split models and views into different files, finish the ordering
function for accounts page
Finish all functions for updating account profile
Finish all account functions
Add the recover function for accounts

Recover function is for if you want to set a account from inactive to
active. The recover button would only show if you are in the recycle
mode.
Change coding style for tags

Use the same coding style as accounts
Finish the copy function for tags

use Q to use the Promise, the post request would be checked if the name
exist or not, if exist, the posting tag name will add " copy" at the end
of the tag name.
Change the POST and PUT handler for tags

Add some validator for POST and PUT handler.

When add a new tag (POST), handler will check if the tag name is exist
or not, if the tag name exist, function getUniqueName will give a new
tag name with "copy(d)" for the new tag.

When edit a exist tag, handler will check if changing to a name that
already exist.
Resolving merge conflicts
Merge branch 'shingo0620-master'