Register/label naming collision fix and other bug fixes

- GCC: Prefix all labels with an underscore, in order to avoid
  collision with register names. This resolved issue #3.
- GAS: Emit a warning if a label string matches some register name.
- SIM: Increase simulator data memory to 64MB. This is needed for some
  GCC testcases (e.g. 1MB array allocations on the stack).
- GCC: Mark FP as caller saved register.
- GCC: Arbitrarily set static chain register to R0.
- GCC: Fix 64bit add/sub arithmetic.
- GCC: Fix a corner case of 64bit value load/store.

Results from running the GCC testsuite using the PRU ISA simulator:
                 === gcc Summary ===
 # of expected passes            81226
 # of unexpected failures        180
 # of unexpected successes       1
 # of expected failures          96
 # of unresolved testcases       51
 # of unsupported tests          1881

Signed-off-by: Dimitar Dimitrov <dinuxbg@gmail.com>