Create front end link to save post (or unpublish post) as draft

You can use wp_update_post() to change the status of a post.

global $current_user;
get_currentuserinfo();

$post_id = $_GET['post_id'];
$the_post = get_post( $post_id );

if ( $the_post->post_author == $current_user->ID && $the_post ) {
    $the_post->post_status="draft";
    wp_update_post( $the_post );    
}

Use wp_insert_post() with post_status => 'draft' to save a post.