First off, a question; Why do you use so many overlaying faces? I was going to try and make your UV simpler for you, but after removing about 30 faces on the top side alone, I gave up and made a new one.
This one does not have the same bumps and such as you had on yours, but it's simple. No overlaying faces.
I'd suggest making a new mesh from scratch. If you want the level of detail you went for on your file, simply subdivide the mesh, and do as you will. But overlaying faces is not necessary, and it will bite you in the butt sooner or later. As you've probably experienced already.
Remember, keep meshes as complex as you absolutely have to.
If you do it as I did in in the picture below, you'll have a really easy time doing the UV and texturing.

Here is how you can easily unwrap your mesh:

EDIT: On request of the OP, here is how I made the shape of the object.
First, I made a new cube (SHIFT+A). I then pressed Z to go to wireframe mode and removed the bottom part of the cube (I could also have simply added a plane, thought of that later).
I then shaped the square to match the shape of the object the OP made.
After that, I selected two verts and extruded them with E a bit down. From there, I moved the verts to match the corners of the original object.
Repeat and repeat (Selecting the two newest verts and extruded them further down)
Making sure the verts were at the right place, I started removing the faces. After that, I selected 3-4 verst at a time and pressed F to fill a new face between the selected verts to make up the shape of the object.
Once the shape was all done, I went to the modifiers tab (The one with the wrench icon) and added a solidify and adjusted ut to give it a nice thickness.
I then proceeded to apply the material to the object, giving it the original appearance.
I never did it, but you can then TAB out of edit mode, and apply the solidify modifier to be able to select the verst on the bottom of the cookie.
Done.
Hope this helped.