"For an application, I have to generate 10K pseudorandom bits from a user-supplied password (8-16 characters). What are possible options? Which one do you recommend and why?"
You can't - they aren't pseudorandom, in that they will be determined by the user's input, which is in the 50-100 bits range. It depends very much want you want to do with these bits, but the question as posed is insoluble - you can't increase the amount of randomness by a deterministic process.
It all depends on the meaning of "pseudorandom". If you want to run some kind of Monte Carlo simulation, the previous answer is indeed fine. But this was posted under Network Security and Cryptography, which is why I made my comment.
First, the practical answers: On linux, you can read from /dev/urandom as a file and get cryptographically secure bits (though some take issue with certain implementations). Also, the OpenSSL library has a secure pseudorandom generator that you can call. Either would be fine for most applications.
As to the seed, I'd be a little careful with just xoring the password down. 32-bits is indeed a small search space (though some restrictive password rules can yield a space even smaller, like a password limited to 8 decimal digits). Also, most printable characters do not have the high bit set, so their xor wouldn't, either. I would consider rotating every other byte by one bit to the left to get some high bits set, but otherwise, use the password as it is. You could also consider encrypting the password (and some padding, like 0xAA) with a block cipher using a key of all 0's, and using the result as the seed for your generator.
Now for the theory answers: If you're looking to implement a good theoretical pseudorandom generator, I've always been fond of Impagliazzo's subset sum PRG (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.9212). The whole field of PRGs computationally indistinguishable from random began with Blum/Micali, "How to generate cryptographically strong sequences of pseudo-random bits", '84 and Andy Yao, "Theory and application of trapdoor functions", '82. Follow their citations and you find lots of schemes to implement which have provable properties.
What kind of properties are you looking for? Long period, speed, security,....??? What is your application?
You can use Mersenne Twister which is, by far, the most widely used PRNG, and use a small lagged Fibonacci generator or linear congruential generator to feed it.
you can also use a symmetric cipher, such as AES or salsa20, to generate a pseudorandom sequence.
This is a well-known issue with plenty of (also well-known) implementation pitfalls.
Why not using a standardized mechanism? Take a look at ISO/IEC 18031 and pick your favorite mechanism. The simplest is probably Hash_DRBG based on SHA-256.
If you don't want to pay for a standard, the NIST website also provides standard and well-known mechanisms for pseudo-random generation. PRNG SHA-1 is fast and secure enough for that purpose, that's a no brainer.
(and NIST has removed the controversial Dual_EC_DRBG from that standard)