Re-worked publish code to output friendlier IDs

The _id and _parentId values had been directly returned from MongoDB.
These have been replaced by a more user-friendly representation, i.e.
using the following prefixes:
- content object = 'co'
- article = 'a'
- block = 'b'
- component = 'c'

For readability _id and _parentId values are zero-padded to two digits,
e.g. co-05, b-01, etc.
Replaced statSync() with asynchronous stat()

This should never have been a synchronous call.
Merge pull request #375 from adaptlearning/friendly-output

Re-work to publish