Update spec.
Update packaging.
New package structure.
Promise-based rewrite of core.