Issue #312 - enforce filesystem limits

Closes #312
@alicoding I think the second parameter is usually just a message to indicate something so I don;t think it needs to be new Error('')