How to retopologize my model?
Here's your retopologized mesh.


I'll show you the alternative method to Bsurfaces based retopology. Add a single vertex, enable a snap tool and change a snap element type to Face. Snap the vertex to the mesh and keep extruding it (E) to form a very rough head basemesh. Now make a basemesh model of a body (model it the same way as head). Add a cirle with 8 vertices and keep extruding it to form a tail. Join a body with a head (match the number of vertices and use Bridge tool to join them). When finished delete one half of a mesh and give it a Mirror Modifier.


Use loopcuts (Ctrl+R) to add more geometry to your mesh. Select newly added vertices and snap them to the mesh again. Correct the geometry moving vertices in proper direction. Repeat the process until you get a desired density of a geometry. Use proportional editing if needed. Think of the edge flow. Change it if needed. 


Using this method I achieved the final geometry, which I polished a bit (relocated some vertices to smooth the shape and changed the edge flow).


Remember, that you can easily check the errors in geometry (like tris or ngons) using a MeshLint addon (you can download it here: https://github.com/rking/meshlint). After installing it, select the whole mesh (A) and press Select Lint button to display the errors.


TIP: Next time try to start modeling with a very simple mesh. Add a Cube and give it a Subsurf Modifier with subdivision level 1. Apply the modifier, then select one half of a mesh and delete it. Give it a Mirror Modifier and keep extruding vertices until you create a very rough character basemesh (I included it to the .blend file). While modeling try to add as little loopcuts as posible to define the shapes. I guess the biggest mistake you made with your model is you subdivided it too much too early so it lost the proper shape.



Here's the .blend: