Yes your right he is nearly an adult but he thinks he is and adult and they are too different things.
I have told him on countless occations (direct to his face) that if he doesnt like my rules then he can go and live somewhere else.........
A said above "he's nearly adult" - well that would be legally wouldnt it as the legal age for being an adult is 18yrs old. Like ive said he thinks hes and adult and i want to make the point he's not - yes and that is harsh but he cannot go through life thinking he can do what he wants.
Everything you wrote screams this to me, you're pretending to treat him as an adult but failing on every single last level. He's free to come and go as he pleases....... clearly only as long as he has your permission.
Telling him repeatedly to his face that he can smeg off for not doing basic chores is just, mean, frankly. We're talking basic chores and to a degree, he's at school and working part time, how many hours a day, total, with work, school and homework is he putting in a day. How many hours do you work a day, similar, less, more, how many chores do you do.
You're treating him as you treat a 12 yr old with few responsibilities, who has no job and easy school life with little work. As I've suggested, throw your idea's out the window, stop thinking about the chair he broke when he was 8, the fight he got in at 12, about when he knicked a bottle of whiskey and got drunk with his mates while you were out.. you've done all those things to, it doesn't mean thats who you are now. Treat him as a REAL adult, don't talk down to him, don't punish him, simply don't help him, unless he helps you. You will find his attitude changes completely.
Right now, its not equal living. Think about it, if you forget to shut a door, is your evening out threatened, no, so why should his. You made an agreement and then completely backed out on it and you really have no clue how important that night out was to him, or if he was in a situation that was simply hard to leave, people relying on him, whatever.
So many parents are completely unable to transition from teaching their kids(and less and less are even able to do that) and helping them learn to live, to just leaving them alone to live and treating them as adults.
Tell him he has no chores to speak of, but point out that should he not help, he'll get no help. Don't nag, or insist, leave him completely alone, if he doesn't do anything around the house, leave him to do his own washing, cooking and cleaning his dishes and what not, if he helps out, be nice and reciprocate. Its that simple, thats actually treating someone as an equal and as an adult.
Last thing, be a god damned man, phone up your kid who for all you know has no where at all to sleep, tell him YOU'RE sorry and you want him to come home as soon as possible to talk. If you can't do that, the kids better off out on his own.
EDIT:- punishment doesn't work, never has and never will(obviously certain things require it, but mostly at a younger age to teach kids the limits, i'm talking general stuff like a curfew for a single night), telling a kid he can't be out late, beforehand, the kid will simply shift plans to the next night or go out twice next week instead of once each week, it seems like punishment but means nothing at all, think about it, if someone could enforce you not going out one friday, you'd just go out on saturday instead, its meaningless and frankly stupid. Taking away help, without being mean and making a point of it is far more effective.
Having a kid go out on a different night, or effecting daily life by not doing his cooking, cleaning and washing, which will effect them more and make them do things around the house more effectively. To many parents use the punishment route because, it feels like you have power, and seems effective, its neither and only goes to show the kid you don't think of them as an equal.