I would look at your O2 sensor and fuel trims first. Use a fuel gauge to measure your fuel pressure. See if it's within spec. From the low idle speed code it doesn't sound like you have a vacuum leak because unmetered air will usually cause a higher idle.
for the codes p0171 and p1171 you should check your fuel pressure. (41 - 47 psi) From your codes, you should look at your fuel trims. (short term and long term) See if the computer is adding fuel to try and make up for the lean readings it's getting from your O2 sensor. Look at the O2 sensor and see if it is switching from above .8 volts to below .2 volts back and forth. Check your injector pulse width to see if the computer is leaving the injector open longer to add fuel to the system.
code p0440 means that your computer see a problem with the ability of your fuel tank system to achieve hold vacuum to the programmed specs it is looking for. So a switch not working correctly, a tank sensor not reading correctly or the system has a leak.
P0506 will be set if your idle is too low. The computer has a desired rpm that it tries to make the engine idle within a certain parameter. The codes sets if the rpm is 60 rpm or more below the parameter it is looking to see. Use your scanner to look at the IAC reading to see what the computer is doing to raise the idle.